内置指令

  1. v-bind
    【单向数据绑定】
    【格式:v-bind:属性名=“data中定义的属性”】
    【简写::属性名=“data中定义的属性”】

    <div id="root"><a href="http://www.baidu.com">跳转百度</a> // 普通字符串赋值<a v-bind:href="url">跳转到百度页面1</a> // 标准写法<a :href="url">跳转到百度页面2</a>  // 简写
    </div>
    
    new Vue({el: '#root',data: function () {return {url: 'http://www.baidu.com'}}
    });
    
  2. v-model
    【双向数据绑定,一般用于表单元素上】
    【格式:v-model:value=“data中定义的属性”】
    【简写:v-model=“data中定义的属性”】

    <div id="root"><input type="text" value="字符串"/>  普通字符串赋值(文本框中的默认值)<input type="text" v-model:value="username"/> // 标准写法<input type="text" v-model="username"/> // 简写
    </div>
    
    new Vue({el: '#root',data: function () {return {username: 'wuwu'}}
    });
    
  3. v-on
    【绑定事件处理函数】
    【格式:v-on:事件类型=“事件处理函数”】
    【简写:@事件类型=“事件处理函数”】

    <div id="root"><button onclick="show()">点击</button>   // 原生js绑定事件方式<button v-on:click="show">点击</button> // 标准写法,无参数可以不写()<button @click="show">点击</button> // 简写
    </div>
    
    new Vue({el: '#root',data: function () {return {count: 1}},methods: {show() {console.log(this.count);}}
    });
    
  4. v-if、v-else-if、v-else
    【创建和删除一个元素】
    【与js中的if、else if、else逻辑相同,三者搭配使用时,需要紧挨在一起,中间不能被其他元素分割】
    【格式:v-if=“属性或表达式”、v-else-if=“属性或表达式”、v-else】

    <div id="root"><p v-if="5 < 1">这是一段文字1</p>  // 不成立<p v-else-if="5 < 6">这是一段文字2</p> // 成立<p v-else>上方都不成立时,显示此节点</p> // 上方代码成立,此行不会被执行
    </div>
    
  5. v-show
    【显示和隐藏一个元素】
    【底层是通过display属性实现的,节点存在于页面中,只是被隐藏了】
    【格式:v-show=“属性或表达式”】

    <div id="root"><p v-show="true">这是一段文字</p> // 显示<p v-show="5 < 1">这是一段文字</p> // 隐藏<p v-show="isShow">这是一段文字</p> // 显示
    </div>
    
    new Vue({el: '#root',data: function () {return {isShow: true}}
    });
    
  6. v-for
    【遍历数组、对象、字符串(比较少用)、次数(比较少用)】
    【格式:v-for="(item, index) in arr; :key=“唯一值”】

    <div id="root"><!-- 遍历数组 --><ul><li v-for="item in arrList" :key="item.id">{{item.id}}---{{item.name}}---{{item.age}}</li></ul><!-- 遍历对象 --><ol><li v-for="(value, key) in objs" :key="key">{{key}}---{{value}}</li></ol><!-- 遍历字符串 --><p><span v-for="(item, index) in str" :key="index">{{index}}---{{item}}</span></p><!-- 遍历次数 --><p><span v-for="(item, index) in 5" :key="index">{{index}}---{{item}}</span></p>
    </div>
    
    new Vue({el: "#root",data: function () {return {arrList: [{id: 1,name: 'wuwu',age: 18}, {id: 2,name: 'tt',age: 19}],objs: {name: 'wuwu',age: 18,study: 'vue'},str: 'hello World'}}
    });
    
  7. v-text
    【在标签间渲染纯文本,替换掉标签中的所有内容,不解析标签】

  8. v-html
    【在标签间渲染html文本,替换掉标签中的所有内容,能够解析标签】

  9. v-cloak
    【vue实例加载完毕的一瞬间,会自动删掉v-cloak属性,可搭配CSS来使用】
    【下例中,vue实例加载中,带有v-cloak属性的标签会先隐藏,防止将插值表达式当做字符串直接渲染到页面中,vue实例加载完毕,系统自动将v-cloak属性去掉,显示标签,交互效果更好一些】

    [v-cloak] {display: none;
    }
    
    <div id="#root"><p v-cloak>{{name}}</p>
    </div>
    
  10. v-once
    【只在初始时动态渲染,之后就视为静态内容了】

    <div id="root"><p v-once>{{count}}</p> <!-- 只在页面初始化时,获取count的值渲染在页面上,之后count的值再变化时,该标签渲染的内容不被影响 --><p>{{count}}</p> <!-- 随着按钮被点击,count不断+1 --><button @click="count++"></button>
    </div>
    
  11. v-pre
    【加上此指令,vue不解析标签中的内容,直接渲染标签,可以提高性能】

    <div id="root"><p v-pre>该标签上的内容直接渲染到页面上,{{count}}</p><p>vue先将属性解析之后再渲染到页面上,{{count}}</p>
    </div>
    

自定义指令

  1. 局部自定义指令
    说明:下例中,模拟文本框绑定默认值,并获取焦点的功能,只能通过对象写法实现,因为如果使用函数写法,是在bind环节就设置element.focus();,此时文本框还没被渲染到页面上,导致初始时获取焦点效果不生效。使用对象写法,可以把element.focus()写在inserted钩子中,只有当节点被渲染到页面上时,才会执行获取焦点代码,这时才会有效果。

    <div id="root"><!-- 模拟文本框绑定默认值,并获取焦点 --><input type="text" v-focus-bind="msg"><!-- 给指定文本添加#前缀 --><p v-prefix="msg"></p>
    </div>
    
    new Vue({el: '#root',data: function() {return {msg: 'hello world!!!'}},directives: {// 对象写法,具有三个钩子,能处理一些细节的问题'focus-bind': {bind(element, binding) { // 指令与节点绑定成功时element.value = binding.value;},inserted(element, binding) { // 绑定指令的这个节点被渲染到页面上时element.focus();},update(element, binding) {  // 指令所在的模板被重新解析时element.value = binding.value;}},// 函数写法,实际上是bind和update的结合体// 触发时机:1、指令与节点绑定成功时(bind)  2、指令所在的模板被重新解析时(update)'prefix'(element, binding) {element.innerText = '#' + binding.value;}}
    });
    

    效果


    注意事项
    ① 指令中的this指向window,不指向vm
    ② 指令名字如果是多个单词,不能使用驼峰式命名法(vue不认),可以用中划线分割,且需要用单引号包裹起来(比如上例中的focus-bind);单个单词不包裹也行(比如上例中的prefix)
    ③ 声明指令时,不用加v-前缀;使用指令时,需要加上v-前缀

  2. 全局自定义指令

    // 将上例的focus-bind指令改为全局指令
    Vue.directive('focus-bind', {bind(element, binding) { // 指令与节点绑定成功时element.value = binding.value;},inserted(element, binding) { // 绑定指令的这个节点被渲染到页面上时element.focus();},update(element, binding) {  // 指令所在的模板被重新解析时element.value = binding.value;}
    });
    // 将上例的prefix指令改为全局指令
    Vue.directive('prefix', function(element, binding) {element.innerText = '#' + binding.value;
    });
    new Vue({el: '#root'
    });
    

Vue中常用的内置指令及自定义指令相关推荐

  1. Python中常用的内置方法

    Python中常用的内置方法: 比较大小.求和 如下所示: 代码块: #枚举:返回索引值和对应的value值for i,v in enumerate('westos'):print(i,v)#zips ...

  2. MySql中常用的内置函数

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  3. python中常用的内置函数,可迭代对象,迭代器对象

    知识点1 :常用内置函数 1 常用内置函数的实际应用 1.1 abs() 返回值是一个绝对值,参数可以是整数和浮点数,如果参数是一个复数,则返回它的模. print(abs(-12.3)) # 12. ...

  4. Python中常用的内置函数(不断更新中)

    首先说一个小技巧,True可看作1,False可看作0 ,并且可以参与运算! 正文开始!!!  一.map() map(func,iterable),其中func为函数名,可为lambda匿名函数,i ...

  5. Linux学习总结(70)——Bash 脚本中常用的内置变量汇总

    一.$FUNCNAME.$LINENO.$PWD FUNCNAME 表示当前函数的名字,作用范围仅限函数中使用,在函数外无值 LINENO 表示当前所在脚本中变量出现在的行号 PWD 表示当前目录, ...

  6. Python中常用的内置函数

    通用函数 函数 功能描述 round(value, [n]) 以四舍五入法返回一个数值.value为需要四舍五入的数值:n为可选参数如果省略该参数则通过四舍五入返回整数,如果该参数没有省略则保留n位小 ...

  7. python中常用的内置方法(min,max,sum,梅举,zip)

  8. 【Vue2.0】—常用的内置指令(九)

    [Vue2.0]-常用的内置指令(九) <body><div id="root"><h1 v-pre>好好学习</h1><h1 ...

  9. vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况

    我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...

最新文章

  1. jsp在java软件中_5.2在JSP中使用JAVABEAN
  2. CodeForces - 888G Xor-MST(贪心+字典树+最小生成树)
  3. R语言观察日志(part1)--subset函数
  4. CL_THTMLB_COLOR_UTIL
  5. 笛卡尔函数_笛卡尔,伯克利和函数式React式编程
  6. Google Chrome不支持ClickOnce部署
  7. c语言画圆登录窗口,C语言画圆问题。怎么跳过画图界面直接出来了?
  8. 把电脑做成服务器系统,把电脑做成云盘服务器
  9. python极客项目编程百度云_Python极客项目编程pdf
  10. 让html img图片垂直居中的三种方法
  11. Linux系统通过console口连接交换机
  12. 变量选择详解与源码实现
  13. 计算机图形学实战——Bresenham直线光栅化算法绘制旋转线
  14. setvlet:控制台获取前端表单以及xml文件数据信息
  15. 怎么测试vps线路状态
  16. 中国移动光猫桥接模式
  17. 深富策略:成交量放大 短线反弹仍有望延续
  18. centos 7.6 ——远程访问及控制——(ssh密钥登录、ssh客户端、TCP Wrappers)
  19. 《C++新经典Linux C++通信架构实战》第1章 课程介绍
  20. 三维动漫计算机配置,三维动画软件之Houdini软件的电脑配置要求_渲云动态

热门文章

  1. css中东布局rtl_如何将RTL支持添加到Flexbox和CSS网格
  2. [附源码]java毕业设计小区物业管理系统
  3. Gnome桌面的下拉式终端: Guake
  4. ISSCC 2017论文导读 Session 14:ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel DVAFS CNN Processor in 28nm
  5. 机器学习——聚类——密度聚类法——DBSCAN
  6. 【论文阅读】Cancellable iris template generation based on Indexing-First-One hashing
  7. 集成存储器控制器(IMC)功能
  8. 软件不能卸载也不能安装的解决办法
  9. 【附源码】计算机毕业设计SSM校园快递代领系统
  10. 在VS2005中添加成员变量