Vue-27、Vue自定义指令

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

1、定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍

函数式写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义指令</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script type="text/javascript" src="./js/dayjs.min.js"></script>
    <style>
    </style>
</head>
<body>
<!--1、定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10-->
<!--2、定义一个v-fbind指令,和v-bind功能类似,但会让其所绑定的input元素默认获取焦点-->
<div id="root">
    <h2>当前的n值是:<span v-text="n"></span></h2>
    <h2>放大10倍的n值是:<span v-big="n"></span></h2>
    <button @click="n++">点我n++</button>
</div>
<script type="text/javascript">
    Vue.config.productionTip=false;
    new Vue({
        el:"#root",
        data:{
            n:1,
        },
        directives:{
            //big函数何时被调用?1、指令与元素成功绑定时(一上来)。2、指令所在的模板被重新解析时
            big(element,binding){  //element  使用所在真实标签
                console.log(element);
                console.log(binding);
                element.innerText = binding.value * 10;

            }
        }
    })
</script>
</body>
</html>

完整写法

<h2>放大10倍的n值是:<span v-big-number="n"></span></h2>

'big-number':function(element,binding){
                     element.innerText = binding.value * 10;
                     },

big函数何时被调用?

  • 指令与元素成功绑定时(一上来)
  • 指令所在的模板被重新解析时

2、定义一个v-fbind指令,和v-bind功能类似,但会让其所绑定的input元素默认获取焦点

<input type="text" v-fbind:value="n">
 fbind(element,binding){
                element.value= binding.value;
                element.focus();//不凑效。原因此时指令与元素成功绑定。但是input 并未出现页面。
            }

注意:

此时 element.focus();不凑效。原因此时指令与元素成功绑定。但是input 并未出现页面。但是当n变化时 element.focus()会生效。
所以函数式写法不完美。
Vue-27、Vue自定义指令,vue,vue.js,前端,javascript

  • 对象式写法
fbind:{
                //指令与函数绑定时
                bind(element,binding){
                    console.log("指令与函数绑定时");
                    element.value= binding.value;
                },
                //指令所在元素插入页面时
                inserted(element,binding){
                    console.log("指令所在元素插入页面时");
                    element.focus();
                },
                //指令所在模板被重新解析时
                update(element,binding){
                    console.log("指令所在模板被重新解析时");
                    element.value= binding.value;
                }
            }

3、全局指令

Vue.directive('fbinds',{
        //指令与函数绑定时
        bind(element,binding){
            console.log("指令与函数绑定时");
            element.value= binding.value;
        },
        //指令所在元素插入页面时
        inserted(element,binding){
            console.log("指令所在元素插入页面时");
            element.focus();
        },
        //指令所在模板被重新解析时
        update(element,binding){
            console.log("指令所在模板被重新解析时");
            element.value= binding.value;
        }
    });

    Vue.directive('big2',function (element,binding) {
        element.innerText = binding.value * 10;
    });

总结

Vue-27、Vue自定义指令,vue,vue.js,前端,javascript文章来源地址https://www.toymoban.com/news/detail-806425.html

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

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

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

相关文章

  • JS-27 前端数据请求方式;HTTP协议的解析;JavaScript XHR、Fetch的数据请求与响应函数;前端文件上传XHR、Fetch;安装浏览器插件FeHelper

    早期的网页都是通过后端渲染来完成的,即服务器端渲染(SSR,server side render): 客户端发出请求 - 服务端接收请求并返回相应HTML文档 - 页面刷新,客户端加载新的HTML文档; 服务器端渲染的缺点: 当用户点击页面中的某个按钮向服务器发送请求时,页面本质上只是一些数

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

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

    2024年02月08日
    浏览(37)
  • 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)
  • vue常见自定义指令

    使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码 使用 代码

    2024年02月08日
    浏览(40)
  • vue自定义指令

    Vue.js 提供了自定义指令(Directives)的特性,允许开发者自定义 HTML 标签的行为。自定义指令是 Vue 的一种高级特性,它使你可以扩展 HTML 标签的行为。通过自定义指令,你可以添加、修改或删除元素的某些行为。 vue存在许多的内置指令:如:v-html、v-model、v-for 等等。 那么如

    2024年01月22日
    浏览(42)
  • Vue 自定义指令

    除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令。 下面我们注册一个全局指令 v-focus, 该指令的功能是在页面加载时,元素获得焦点: 实例 我们也可以在实例使用 directives 选项来注册局部指令,这样指令只能在这个实例中使用: 实例 钩子函数 指令定义

    2023年04月21日
    浏览(34)
  • vue3自定义指令

    在 Vue 3 中,我们可以通过使用 app.directive 方法来定义自定义指令。下面是一个简单的例子: 在上面的例子中,我们定义了一个名为 highlight 的自定义指令,它在元素被挂载时将其背景颜色设置为黄色,并在元素被卸载时将背景颜色重置为空。 在 mounted 和 unmounted 方法中,我们

    2024年01月18日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包