详解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 nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
jquery 卷帘效果实现代码(不同方向)
Feb 05 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 Javascript
react-redux中connect()方法详细解析
May 27 Javascript
javaScript实现滚动条事件详解
Mar 24 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
ionic使用angularjs表单验证(模板验证)
Dec 12 Javascript
vue-router实现嵌套路由的讲解
Jan 19 Javascript
javascript代码实现简易计算器
Jan 25 Javascript
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 str_replace的替换漏洞
2008/03/15 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
php的字符串用法小结
2010/06/08 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
Nuxt.js踩坑总结分享
2018/01/18 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
tensorflow实现softma识别MNIST
2018/03/12 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
浅谈Python type的使用
2019/11/19 Python
python3访问字典里的值实例方法
2020/11/18 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
2015年工商所工作总结
2015/05/21 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
学校教学管理制度
2015/08/06 职场文书
自信主题班会
2015/08/14 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP