详解Vue.js自定义tipOnce指令用法实例


Posted in Javascript onDecember 19, 2018

vuejs自定义指令是用来操作DOM的。尽管Vue推崇数据驱动视图的理念,但并非所有情况都适合数据驱动。自定义指令就是一种有效的补充和扩展,不仅可用于定义任何的DOM操作,并且是可复用的。

最近碰到一种业务场景,业务场景如图:

详解Vue.js自定义tipOnce指令用法实例

有个操作提示点击可以显示,足够了吧?如图:

详解Vue.js自定义tipOnce指令用法实例

不够!好吧,产品说要求自动淡出提示!

后台操作复杂需要有个明显提示给业务人员更好地操作,而且这种提示,只需要一种提示就足够。于是我就想到了自己实现自定义指令。

整个vuejs场景是利用了构建模式开发,在我的main.js代码是这样鲁的:

let obj = new Vue({
 router,
 store,
 render: h => h(App)
}).$mount('#app-box');


//注册一个全局自定义指令 `v-tipOnce`
Vue.directive('tipOnce', {
 bind: function (el,binding) {
   console.log(el,binding);
   obj.$message({
    type: 'info',
    message: binding.value
   });      
 }
})

通过directive注册v-tipOnce 全局指令,通过指令的 bind钩子函数保证 只调用一次,指令第一次绑到元素时调用,在这里可以进行一次性的初始化设置。那具体在指令里面做什么呢? 我无非就是想做个提示语一次性展示出来。于是想到了Elementui里面的$.message,于是直接用了 obj做个转接实例,不想另外写提示语 dom创建了。我们可以尝试打印 el,和bingding是什么,其中el是dom实例,至于binding看下面代码的用法传的参数就知道。

好了,我们在单页面组件用上v-tipOnce指令吧。代码如下:

<el-row>
    <el-col :span="24">
      <div>
        <el-collapse>
          <el-collapse-item>
            <template slot="title">
            <div class="danger"> <i class="header-icon el-icon-search"></i> 操作提示 Operation Tips </div>  
            </template>
            <div class="danger" v-tipOnce="'展示商品:必须选择对应的展示位置,才知道你所对应的业务类型(B端还是C端?),展示商品会根据展示位置显示出对应的商品数据;'">展示商品:必须选择对应的展示位置,才知道你所对应的业务类型(B端还是C端?),展示商品会根据展示位置显示出对应的商品数据;</div>

          </el-collapse-item>
        </el-collapse>
      </div>
    </el-col>
  </el-row>

使用效果如下:

详解Vue.js自定义tipOnce指令用法实例

指令就那么简单,可以根据你自己的思想甚至集成第三方插件使用,用出你想要的效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript的键盘控制事件说明
Apr 15 Javascript
jquery animate图片模向滑动示例代码
Jan 26 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
AngularJS学习笔记之TodoMVC的分析
Feb 22 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
Nov 06 Javascript
关于react中组件通信的几种方式详解
Dec 10 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
Jan 18 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
Nov 14 Javascript
JavaScript find()方法及返回数据实例
Apr 30 Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 #Javascript
JavaScript链式调用实例浅析
Dec 19 #Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 #Javascript
如何为vue的项目添加单元测试
Dec 19 #Javascript
浅谈Angular7 项目开发总结
Dec 19 #Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 #Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
Dec 19 #Javascript
You might like
php采集速度探究总结(原创)
2008/04/18 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
vuejs指令详解
2017/02/07 Javascript
js中开关变量使用实例
2017/02/24 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
python中返回矩阵的行列方法
2018/04/04 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
在python中修改.properties文件的操作
2020/04/08 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
UNIX特点都有哪些
2016/04/05 面试题
小学生感恩演讲稿
2014/04/25 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL