详解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 相关文章推荐
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
Javascript 静态页面实现随机显示广告的办法
Nov 17 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
JavaScript操纵窗口的方法小结
Jun 28 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
Dec 29 Javascript
利用js+css+html实现固定table的列头不动
Dec 08 Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 Javascript
微信小程序如何获取openid及用户信息
Jan 26 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
May 13 Javascript
vue样式穿透 ::v-deep的具体使用
Jun 04 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源代码
2006/10/09 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
vue实现购物车列表
2020/06/30 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
Python中使用SAX解析xml实例
2014/11/21 Python
Python中属性和描述符的正确使用
2016/08/23 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
PHP如何删除一个Cookie值
2012/11/15 面试题
工程承诺书怎么写
2014/05/24 职场文书
美术教师求职信范文
2015/03/20 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
如何自己动手写SQL执行引擎
2021/06/02 MySQL