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方法的对象,这个方法的接收的第一个参 ...
随机推荐
- 关于MySQL去除查询结果重复值
下面先来看看例子: table: id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重 ...
- 分布式工作流任务调度系统Easy Scheduler正式开源
分布式工作流任务调度系统Easy Scheduler正式开源 1.背景 在多位技术小伙伴的努力下,经过近2年的研发迭代.内部业务剥离及重构,也经历一批种子用户试用一段时间后,EasyScheduler ...
- Mybaits 运行原理流程时序图
1 .初始化sqlsessionFactory 2openSession 3.getMapper返回接口的代理对象 包含了SqlSession对象 4.查询流程
- kaptcha Spring 整合
转自:http://my.oschina.net/CandyDesire/blog/209364 生成验证码的方式有很多,个人认为较为灵活方便的是Kaptcha ,他是基于SimpleCaptcha的 ...
- Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm
Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...
- c++ 加载资源文件
int _tmain(int argc, _TCHAR* argv[]) { HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_DATA1), ...
- cross appdomain access
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- YARN日志聚合相关参数配置
日志聚合是YARN提供的日志中央化管理功能,它能将运行完成的Container/任务日志上传到HDFS上,从而减轻NodeManager负载,且提供一个中央化存储和分析机制.默认情况下,Contain ...
- 数据库之DML
1.表的有关操作: 1.1.表的创建格式: CREATE TABLE IF NOT EXISTS 表名(属性1 类型,属性2 类型,....,属性n 类型):# 标记部分表示可以省略 1.2.表的修改 ...
- 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置
USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如果 ...