博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue开发插件的简单步骤
阅读量:5740 次
发布时间:2019-06-18

本文共 1966 字,大约阅读时间需要 6 分钟。

为了每次总是可以重复使用自己写的组件,就把它改成插件。

传送门:https://www.cnblogs.com/linxin/p/6637904.html

案例是从这里学习的。但用法跟直接引入mint-ui这些有些不同。

Vue插件开发方法(官网):https://cn.vuejs.org/v2/guide/plugins.html#开发插件

toast.js代码:

var Toast = {}Toast.install = function (Vue, options) {  // 默认参数,defaultType:toast的位置;duration:持续多少时间消失  let opt = {    defaultType: 'bottom',    duration:'1000'  }  // 将Vue.use({})里面的参数重新赋值给opt  for(let property in options){    opt[property] = options[property];    console.log(opt[property])  }  // 调用的时候直接 this.$toast调用该插件  Vue.prototype.$toast = (tips, type) => {    // toast的位置,该位置的CSS写在了toast.css    if(type){      opt.defaultType = type;    }    // 只允许一个toast存在    if(document.getElementsByClassName('vue-toast').length){      return;    }    let toastTpl = Vue.extend({      // toast的html模板      template: '
' + tips + '
' }) // 将该toast手动挂载到$el let tpl = new toastTpl().$mount().$el; document.body.appendChild(tpl); setTimeout(function () { // 持续多少时间后,将toast移除 document.body.removeChild(tpl); },opt.duration); } // 通过this.$toast.bottom() 调用组件,直接显示位置 ['bottom', 'center', 'top'].forEach(type => { Vue.prototype.$toast[type] = (tips) => { return Vue.prototype.$toast(tips, type) } })}// 导出toast,让需要的地方去importexport default Toast;

toast.css

.vue-toast {
border:1px solid #e6e6e6; box-shadow:2px 2px 1px #e6e6e6; border-radius: 4px; padding: 10px 50px; position: absolute; z-index: 1000; color:#fff; left:50%; transform: translateX(-50%);}.toast-top {
top:0;}.toast-bottom {
bottom:0;}.toast-center {
top:50%; transform: translate(-50%,-50%);}

在main.js引入该插件

// 引入CSSimport './components/toast/toast.css'// 引入toast.jsimport Toast from './components/toast/toast'// 引用Toast组件,并配置持续时间的参数,这里如果添加了{},// 则默认参数跟着改变Vue.use(Toast,{duration:2000})

最后,调用了,在要使用该组件的地方,调用

mounted(){    this.$toast.center('loading');  }

最终成果:刷新了一下页面,就显示出来,2ms后就消失。

转载于:https://www.cnblogs.com/xiaoxiaossrs/p/8509973.html

你可能感兴趣的文章
Sublime Text 2.0.2,Build 2221注册码
查看>>
js scroll事件
查看>>
最长递增子序列 动态规划
查看>>
原生CSS设置网站主题色—CSS变量赋值
查看>>
webpack 4.0 中 clean-webpack-plugin 的使用
查看>>
WPF
查看>>
中文词频统计
查看>>
POJ 2236 Wireless Network (并查集)
查看>>
python分类
查看>>
GitBlit (1)-- 在linux 安装 GitBlit 并运行
查看>>
Windows与Linux之间的文件自动同步
查看>>
程序是如何执行的(一)a=a+1
查看>>
go : 结构
查看>>
18 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果
查看>>
BZOJ - 3578: GTY的人类基因组计划2
查看>>
理解WebKit和Chromium(电子书)
查看>>
爱——无题
查看>>
分布式服务框架原来与实践 读书笔记一
查看>>
【http】post和get请求的区别
查看>>
TFS强制撤销某个工作区的文件签出记录
查看>>