vue简单插件
已经很久没有学习新的相关知识,对于今后的学习方向可能会集中在vue的源码,render,jsx语法,服务端渲染来学习,巩固好vue的基础和高级的知识,现阶段vue的api和基本用法已经全部掌握,但是还是要深入学习,不能只知道api而已!
最近的项目中使用了vant的toast提示框,后来ui出图需要使用自己定义的样式,故看了下插件的写法,写了一次toast插件,鉴于需求比较少可能比较简单
首先需要写好页面的模板,布局
<template>
<transition name="fadeIn">
<div class="contain" v-if="show">
<div class="wrap" :class="{active:type == 'success' || type == 'fail'}">
<img src="../../assets/images/successToast.png" v-if="type == 'success'">
<img src="../../assets/images/failToast.png" v-else-if="type == 'fail'">
<div class="text">{{message}}</div>
</div>
</div>
</transition>
</template> <script>
export default {
data(){
return {
type:'',
message:'',
show:false,
}
}
}
</script> <style lang="scss" scoped>
.contain{
width: 100%;
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
text-align: center;
z-index: 9999;
}
.wrap{
display: inline-block;
max-width: 600px;
background: rgba(0,0,0,.8);
padding: 50px;
border-radius: 10px;
box-sizing: border-box;
color:#fff;
text-align: center;
&.active{
width: 380px;
}
img{
width: 86px;
}
.text{
text-align: center;
font-size: 28px;
word-break: break-all;
}
}
.fadeIn-enter-active, .fadeIn-leave-active{
transition: opacity .3s;
}
.fadeIn-enter, .fadeIn-leave-active{
opacity: 0;
}
</style>
紧接着需要使用vue的install来注册插件,全局插入提示组件,控制显示
import toastComponent from './toast.vue'
const Toast = {};
Toast.install = function (Vue) {
// 生成一个Vue的子类
const ToastConstructor = Vue.extend(toastComponent)
// 生成一个该子类的实例
const instance = new ToastConstructor(); // 将这个实例挂载在我创建的div上
// 并将此div加入全局挂载点内部
instance.$mount(document.createElement('div'))
document.body.appendChild(instance.$el)
// 通过Vue的原型注册一个方法
// 让所有实例共享这个方法 // 其中的duration是持续时间
Vue.prototype.$toast = (data,duration = 2000) => {
if(Object.prototype.toString.call(data) == "[object Object]"){
instance.message = data.message;
instance.type = data.type;
instance.show = true;
} else if(typeof(data) == 'string'){
instance.message = data;
instance.show = true;
}
setTimeout(() => {
instance.show = false;
}, data.duration ? data.duration :duration);
}
}
export default Toast
现在基本的功能已经实现,在main.js里面进行注册接全局调用$toast方法来使用tost组件
import toastRegistry from './common/toast/index'
Vue.use(toastRegistry)
实现的页面效果分别如下:



vue简单插件的更多相关文章
- VUE图片懒加载-vue lazyload插件的简单使用
序:vue项目时候,我们要对图片进行懒加载处理,这个开发项目中就不需要自己去写了,因为比较方便使用vue lazyload进行处理,高效率开发 一. vue lazyload插件: 插件地址:http ...
- 从零开始实现Vue简单的Toast插件
在前端项目中,有时会需要通知.提示一些信息给用户,尤其是在后台系统中,操作的正确与否,都需要给与用户一些信息. 1. 实例 在Vue组件的methods内,调用如下代码 `this``.$toast( ...
- VUE图片懒加载-vue lazyload插件的简单上手使用(优化版本)
在用VUE做项目开发的过程中,首页用到了懒加载的方法,查找了一些方法,觉得官网写得太复杂,有一篇博客不错(https://www.cnblogs.com/xyyt/p/7650539.html),但是 ...
- vue各种插件汇总
https://blog.csdn.net/wh8_2011/article/details/80497620(copy) Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一 ...
- vue常用插件汇总
UI-框架element - 饿了么出品的Vue2的web UI工具套件 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI 组件库 Keen-UI - 轻量 ...
- Vue简单基础 + 实例 及 组件通信
vue的双向绑定原理:Object.defineProperty() vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫 ...
- vue 常用插件,保存
UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 mint-ui- Vue 2的移动UI元素 iview- 基于 Vuejs 的开源 UI ...
- 一篇文章带你了解网页框架——Vue简单入门
一篇文章带你了解网页框架--Vue简单入门 这篇文章将会介绍我们前端入门级别的框架--Vue的简单使用 如果你以后想从事后端程序员,又想要稍微了解前端框架知识,那么这篇文章或许可以给你带来帮助 温馨提 ...
- 写一个Vue loading 插件
什么是vue插件? 从功能上说,插件是为Vue添加全局功能的一种机制,比如给Vue添加一个全局组件,全局指令等: 从代码结构上说,插件就是一个必须拥有install方法的对象,这个方法的接收的第一个参 ...
随机推荐
- pytorch之Resize()函数
Resize函数用于对PIL图像的预处理,它的包在: from torchvision.transforms import Compose, CenterCrop, ToTensor, Resize ...
- tp 下载
public function download() { //文件名 $filename=input('filename'); // $file_dir = $_SERVER["DOCUME ...
- 【命令汇总】Windows 应急响应
日期:2019-06-07 16:11:49 作者:Bay0net 介绍:Windows 应急响应.取证及溯源相关内容学习记录 0x00.前言 常见的应急分类: web入侵:网页挂马.主页篡改.Web ...
- lambda一些查询语句
<!--得分数据结构-->1 <Score> <studentid>1</studentid> <courseid>1</course ...
- tomcat 404 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
1.原因 tomcat没有找到项目,因为是用eclipse启动的,不是在tomcat的目录下启动,所以我们需要在eclipse下配置启动目录,好让tomcat找到项目. 2.解决 用本地安装的tomc ...
- 项目中引入kafka
项目如果需要引入kafka,可以从以下几个流程走: 1.pom文件引对应的jar包 <dependency> <groupId>org.apache.kafka</gro ...
- Java ——异常处理
本节重点思维导图 详细戳——> 异常处理
- QA的工作职责是什么?
目前不知道,后续一点一点查资料补充吧 QA不管做什么的类型的测试,最基础的功能测试,需要搭建测试环境:进阶部分的性能压力测试,对搭建环境的要求更高:接口功能测试,搭建测试环境,和功能测试的差不多: 测 ...
- mysql5.6修改密码并授权所有远程用户可登陆
1.my.ini文件,删除最后一行的"skip-grant-tables 2.执行"use mysql;",使用mysql数据库; 3.执行:update mysql.u ...
- webservice的一些理解
web services中如果用.NET的话,DataSet可以作为与客户端交互的一个返回值,因为DataSet实质上是XML.而SOAP WSDL等都是基于XML的. --------------- ...