首页 > 其他分享 >vue-day25--自定义指令总结

vue-day25--自定义指令总结

时间:2023-07-16 22:45:34浏览次数:41  
标签:vue console log 自定义 day25 binding value element 指令

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>自定义指令总结</title> <script type="text/javascript" src="../js/vue.js"></script> </head> <body> <div id="root"> <!-- 需求1 定义一个 v-big 指令 和 v-text 功能类似,但是会把绑定数值放大10倍 需求2 定义一个 v-fbind指令,和v-bind功能类似,但是可以让其所绑定的input元素默认获取焦点
一、定义语法: (1).局部指令: new Vue({ directives:{指令名:配置对象} }) 或 new Vue({ directives:{指令名:配置对象} }) (2).全局指令: Vue.directive(指令名,配置对象) 或 Vue.directive(指令名,回调函数)

二、配置对象中常用的3个回调: (1).bind:指令与元素成功绑定时调用。 (2).inserted:指令所在元素被插入页面时调用。 (3).update:指令所在模板结构被重新解析时调用。
三、备注: 1.指令定义时不加v-,但使用时要加v-; 2.指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase命名。

--> <h2 v-pre>vue 其实很简单</h2> <h2 v-once>初始化的n值{{n}}</h2> <h1>当前n的值<span v-text="n"></span></h1> <h1>放大10倍数后n的值<span v-big="n"></span></h1> <h1>放大10倍数后n的值(指令有-分隔符号)<span v-big-number="n"></span></h1> <button @click="n++">点我加上n+1</button> <input v-fbind:value="n" /> </div>
<script type="text/javascript"> // 定义全局指令 Vue.directive("fbind", { bind(element, binding) { console.log("bind"); element.value = binding.value; }, //指令所在元素被插入页面时 inserted(element, binding) { element.focus(); console.log("inserted"); }, //指令所在的模板被重新解析的时候 update(element, binding) { console.log("upadte"); element.value = binding.value; }, }); new Vue({ el: "#root", //el用于指定当前vue实例为那个容器服务,但通常为css选择器字符串 data: { n: 1, },
// directives: { // //big函数何时会被调用 1.指令与元素成功绑定(一上来)2. 指令所在的模板被重新解析时 // big(element, binding) { // console.log(this); // 此处的this 是window // // 判断是不是dom 节点 // //console.dir(element); // //console.log(element instanceof HTMLElement); // element.innerText = binding.value * 10; // },
// "big-number"(element, binding) { // // 判断是不是dom 节点 // //console.dir(element); // //console.log(element instanceof HTMLElement); // element.innerText = binding.value * 10; // }, // fbind: { // // 指令与元素成功绑定时间 (一上来) // bind(element, binding) { // console.log("bind"); // element.value = binding.value; // }, // //指令所在元素被插入页面时 // inserted(element, binding) { // element.focus(); // console.log("inserted"); // }, // //指令所在的模板被重新解析的时候 // update(element, binding) { // console.log("upadte"); // element.value = binding.value; // }, // }, // }, }); </script> </body> </html>

标签:vue,console,log,自定义,day25,binding,value,element,指令
From: https://www.cnblogs.com/satisfysmy/p/17558754.html

相关文章

  • 基于VuePress+gitee搭建个人博客
    搭建步骤步骤1:创建并进入一个新目录mkdirmy-blogcdmy-blog步骤2:初始化项目gitinitpnpminit步骤3:将VuePress安装为本地依赖pnpmadd-Dvuepress@next@vuepress/client@nextvue步骤4:在package.json中添加一些scripts在新窗口打开{"......
  • vue-day25--自定义指令v-fbind
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>自定义指令</title><scripttyp......
  • vue-day25--自定义指令
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>自定义指令</title><scripttyp......
  • Nginx+Lua实现自定义WAF(一)
    安装环境:centOS71810 Step1:安装编译所依赖的软件pcre-devel:扩展的正则表达式引擎,为了使Nginx处理更复杂的正则表达式机制openssl-devel:–with-http_ssl_module使用该模块必需装openssl库,来实现http支持https协议zlib-devel:zlib库是网络通信压缩库,ngx_http_gzip_module(gzip......
  • vue-day25--v-pre指令
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>v-pre指令</title><scriptt......
  • vue-day25--v-once指令
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>v-once指令</title><script......
  • ThreadPoolTaskExecutor自定义线程池的配置和使用
    ThreadPoolTaskExecutor自定义线程池的配置和使用线程池ThreadPoolTaskExecutor和ThreadPoolExecutor的区别ThreadPoolExecutor,这个类是JDK中的线程池类,继承自Executor,里面有一个execute()方法,用来执行线程,线程池主要提供一个线程队列,队列中保存着所有等待状态的线程,避免了创......
  • vue-day23--v-html指令
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>v-html指令</title><script......
  • 前端Vue仿美团右侧侧边栏弹框筛选框popup alert
    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率......
  • vue-day22--v-text指令
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>过滤器</title><scripttype=......