Vue中常用的内置指令及自定义指令
内置指令
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'}} });
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'}} });
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);}} });
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>
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}} });
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'}} });
v-text
【在标签间渲染纯文本,替换掉标签中的所有内容,不解析标签】v-html
【在标签间渲染html文本,替换掉标签中的所有内容,能够解析标签】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>
v-once
【只在初始时动态渲染,之后就视为静态内容了】<div id="root"><p v-once>{{count}}</p> <!-- 只在页面初始化时,获取count的值渲染在页面上,之后count的值再变化时,该标签渲染的内容不被影响 --><p>{{count}}</p> <!-- 随着按钮被点击,count不断+1 --><button @click="count++"></button> </div>
v-pre
【加上此指令,vue不解析标签中的内容,直接渲染标签,可以提高性能】<div id="root"><p v-pre>该标签上的内容直接渲染到页面上,{{count}}</p><p>vue先将属性解析之后再渲染到页面上,{{count}}</p> </div>
自定义指令
局部自定义指令
说明:下例中,模拟文本框绑定默认值,并获取焦点的功能,只能通过对象写法实现,因为如果使用函数写法,是在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-前缀全局自定义指令
// 将上例的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中常用的内置指令及自定义指令相关推荐
- Python中常用的内置方法
Python中常用的内置方法: 比较大小.求和 如下所示: 代码块: #枚举:返回索引值和对应的value值for i,v in enumerate('westos'):print(i,v)#zips ...
- MySql中常用的内置函数
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- python中常用的内置函数,可迭代对象,迭代器对象
知识点1 :常用内置函数 1 常用内置函数的实际应用 1.1 abs() 返回值是一个绝对值,参数可以是整数和浮点数,如果参数是一个复数,则返回它的模. print(abs(-12.3)) # 12. ...
- Python中常用的内置函数(不断更新中)
首先说一个小技巧,True可看作1,False可看作0 ,并且可以参与运算! 正文开始!!! 一.map() map(func,iterable),其中func为函数名,可为lambda匿名函数,i ...
- Linux学习总结(70)——Bash 脚本中常用的内置变量汇总
一.$FUNCNAME.$LINENO.$PWD FUNCNAME 表示当前函数的名字,作用范围仅限函数中使用,在函数外无值 LINENO 表示当前所在脚本中变量出现在的行号 PWD 表示当前目录, ...
- Python中常用的内置函数
通用函数 函数 功能描述 round(value, [n]) 以四舍五入法返回一个数值.value为需要四舍五入的数值:n为可选参数如果省略该参数则通过四舍五入返回整数,如果该参数没有省略则保留n位小 ...
- python中常用的内置方法(min,max,sum,梅举,zip)
- 【Vue2.0】—常用的内置指令(九)
[Vue2.0]-常用的内置指令(九) <body><div id="root"><h1 v-pre>好好学习</h1><h1 ...
- vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况
我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...
最新文章
- jsp在java软件中_5.2在JSP中使用JAVABEAN
- CodeForces - 888G Xor-MST(贪心+字典树+最小生成树)
- R语言观察日志(part1)--subset函数
- CL_THTMLB_COLOR_UTIL
- 笛卡尔函数_笛卡尔,伯克利和函数式React式编程
- Google Chrome不支持ClickOnce部署
- c语言画圆登录窗口,C语言画圆问题。怎么跳过画图界面直接出来了?
- 把电脑做成服务器系统,把电脑做成云盘服务器
- python极客项目编程百度云_Python极客项目编程pdf
- 让html img图片垂直居中的三种方法
- Linux系统通过console口连接交换机
- 变量选择详解与源码实现
- 计算机图形学实战——Bresenham直线光栅化算法绘制旋转线
- setvlet:控制台获取前端表单以及xml文件数据信息
- 怎么测试vps线路状态
- 中国移动光猫桥接模式
- 深富策略:成交量放大 短线反弹仍有望延续
- centos 7.6 ——远程访问及控制——(ssh密钥登录、ssh客户端、TCP Wrappers)
- 《C++新经典Linux C++通信架构实战》第1章 课程介绍
- 三维动漫计算机配置,三维动画软件之Houdini软件的电脑配置要求_渲云动态
热门文章
- css中东布局rtl_如何将RTL支持添加到Flexbox和CSS网格
- [附源码]java毕业设计小区物业管理系统
- Gnome桌面的下拉式终端: Guake
- ISSCC 2017论文导读 Session 14:ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel DVAFS CNN Processor in 28nm
- 机器学习——聚类——密度聚类法——DBSCAN
- 【论文阅读】Cancellable iris template generation based on Indexing-First-One hashing
- 集成存储器控制器(IMC)功能
- 软件不能卸载也不能安装的解决办法
- 【附源码】计算机毕业设计SSM校园快递代领系统
- 在VS2005中添加成员变量