详解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编程起步(第一课)
Jan 10 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
jQuery实现流动虚线框的方法
Jan 29 Javascript
jquery ajax双击div可直接修改div中的内容
Mar 04 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
Jan 28 Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
JavaScript中清空数组的方法总结
Dec 02 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 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从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
PHP多进程编程实例详解
2017/07/19 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
vue实现信息管理系统
2020/05/30 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
浅谈python中requests模块导入的问题
2018/05/18 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Python合并多个Excel数据的方法
2018/07/16 Python
python做反被爬保护的方法
2019/07/01 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
python 调用Google翻译接口的方法
2020/12/09 Python
一个入门级python爬虫教程详解
2021/01/27 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
内勤岗位职责
2015/02/10 职场文书
民事起诉书范本
2015/05/19 职场文书
感动中国何玥观后感
2015/06/02 职场文书
教师节简报
2015/07/20 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书