VUE---自定义指令

这篇具有很好参考价值的文章主要介绍了VUE---自定义指令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能。可分为全局注册与                        局部注册。

全局注册(main.js中注册):

Vue.directive('指令名称',{

        bind(ele,binding) {},  // 只执行一次;DOM渲染之前执行,里面可以进行样式操作

        inserted(ele,binding) {},  // 只执行一次;DOM渲染之后执行,里面可以进行行为操作                                                 --常用

        update(ele,binding) {}, // 数据更新后执行--常用

        componentUpdated(ele,binding) {}, // 父子组件都更新后执行

        unbind(ele,binding) {}, // 指令解绑的时候执行

})

 局部注册(main.js中注册):

export default {

        Vue.directive('指令名称',{

                bind(ele,binding) {},  // 只执行一次;DOM渲染之前执行,里面可以进行样式操作

                inserted(ele,binding) {},  // 只执行一次;DOM渲染之后执行,里面可以进行行                                                               为操作--常用

                update(ele,binding) {}, // 数据更新后执行--常用

                componentUpdated(ele,binding) {}, // 父子组件都更新后执行

                unbind(ele,binding) {}, // 指令解绑的时候执行

        })

}

指令值的语法:
        ① v-指令名 = "指令值" ,通过 等号 可以绑定指令的值
        ② 通过 binding.value 可以拿到指令的值
        ③ 通过 update 钩子 ,可以监听指令值的变化,进行dom更新操作

 

示例1---打开页面时,输入框自动获取焦点(全局注册,main.js)

// vue页面
<input type="text" v-focus />

// main.js
Vue.directive('focus', {
  // 获取焦点
  inserted(ele, binding) {
    console.log(ele) // 绑定指令的元素
    console.log(binding) // 指令的相关信息(指令的值等)
    ele.focus() // 让元素获取焦点
  },
})

结果如下: 

VUE---自定义指令,VUE基础,vue.js,javascript,前端

控制台打印的消息如下:

VUE---自定义指令,VUE基础,vue.js,javascript,前端

示例2--改变页面字体颜色(局部注册,在页面中注册): 

// vue页面
<h3 v-color="color">需求2:Ajax请求数据,并设计loading指令</h3>

<script>
export default {
  data() {
    return {
      color: 'red',
    }
  },
  directives: {
    color: {
      inserted(el, binding) {
        el.style.color = binding.value
      },
      update(el, binding) {
        el.style.color = binding.value
      },
    },
  },
}
</script>

结果如下:

VUE---自定义指令,VUE基础,vue.js,javascript,前端

修改color变量的值后,页面字体颜色自动更新如下

VUE---自定义指令,VUE基础,vue.js,javascript,前端文章来源地址https://www.toymoban.com/news/detail-804729.html

到了这里,关于VUE---自定义指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端开发攻略---Vue通过自定义指令实现元素平滑上升的动画效果(可以自定义动画时间、动画效果、动画速度等等)。

    这个指令不是原生自带的,需要手动去书写,但是这辈子只需要编写这一次就好了,后边可以反复利用。 IntersectionObserver 是一个用于监测元素是否进入或离开视口(viewport)的 API。它可以帮助你在页面滚动时或者元素位置改变时进行回调操作,这样你就可以根据元素是否可见

    2024年04月11日
    浏览(49)
  • GuLi商城-前端基础Vue指令v-for

    2024年02月12日
    浏览(35)
  • 进阶 vue自定义指令 vue中常用自定义指令以及应用场景,案例书写

    除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。 我们已经介绍了两种在 Vue 中重用代码的方式:组件和组合式函数。组件是主要的构建模块,而组合式函数则侧重于有状态的逻辑。另一方面,自定义指令主要是为了重用涉

    2024年02月15日
    浏览(40)
  • 【Vue】二:Vue核心处理---vue的其它指令和自定义指令

    v-text:当做文件解析。 v-html:当做 HTML 代码解析。 v-cloak 配置 css 样式来解决胡子的闪现问题。 我们模拟网络延迟的情况下,发现出现了如上的问题。 只渲染一次。之后将被视为静态内容。 带有该指令的标签将不会被编译。 指令的名字 (1)v-不需要写 (2)Vue官方建议指令

    2024年02月08日
    浏览(37)
  • Vue-27、Vue自定义指令

    函数式写法 完整写法 big函数何时被调用? 指令与元素成功绑定时(一上来) 指令所在的模板被重新解析时 注意: 此时 element.focus();不凑效。原因此时指令与元素成功绑定。但是input 并未出现页面。但是当n变化时 element.focus()会生效。 所以函数式写法不完美。 对象式写法

    2024年01月19日
    浏览(35)
  • Vue(内置指令、自定义指令)

    和插值语法的效果类似 注意:不能识别标签数据 和插值语法的效果类似   当vue引入在html和js脚本前面时候网络延迟会导致页面未解析就会出现在页面 访问本地服务器比较快(没有延迟) 访问远程服务器比较慢(会有延迟) 同样可以通过chrome的开发者工具进行调整    js阻

    2024年02月01日
    浏览(48)
  • 【Vue2.0源码学习】指令篇-Vue自定义指令

    在 Vue 中,除了 Vue 本身为我们提供的一些内置指令之外, Vue 还支持用户自定义指令。并且用户有两种定义指令的方式:一种是使用全局API—— Vue.directive 来定义全局指令,这种方式定义的指令会被存放在 Vue.options[\\\'directives\\\'] 中;另一种是在组件内的 directive 选项中定义专为

    2024年02月09日
    浏览(43)
  • 【Vue】自定义指令

            📝个人主页: 五敷有你         🔥系列专栏: Vue ⛺️稳重求进,晒太阳 之前的v-html v-model v-for 等都是内置指令 自定义指令: 自己定义的指令,可以封装一些dom操作,扩展额外功能 操作dom:dom元素.focus() 全局注册:-语法 Vue 自动将我们的 自定义指令添加上了

    2024年02月21日
    浏览(41)
  • VUE---自定义指令

    自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能。可分为全局注册与                        局部注册。 全局注册(main.js中注册): Vue.directive(\\\'指令名称\\\',{         bind(ele,binding) {},  // 只执行一次;DOM渲染之前执行,里面可以进行样式操作       

    2024年01月19日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包