|
Vue.js条件与循环
1、条件判断
(1)v-if,- <div id="app"> <p v-if="seen">现在你看到我了</p> <template v-if="ok"> <h1>菜鸟教程</h1> </template></div> <script> new Vue({ el:'#app', data:{ seen:true, ok:true } });</script>
复制代码 (2)v-else-if
(3)v-else- <div id="app"> <div v-if="type === 'A' ">A</div> <div v-else-if="type === 'B' ">B</div> <div v-else="type === 'C' ">C</div></div> <script> new Vue({ el:'#app'; data:{ type:'C' } });</script>
复制代码 (4)v-show
除了v-if、v-else-if、v-else,还可以使用v-show指令来根据条件展示元素- <div id="app"> <h1 v-show="ok">Hello</h1></div> <script> new Vue({ el:'#app', data:{ ok:true } });</script>
复制代码 2、循环语句
使用v-for指令
(1)简单的v-for - <ol> <li v-for="site in sites">{{ site.name }}</li> </ol>
复制代码 (2)模板中的v-for- <template v-for="site in sites"> <li> {{ site.name }} </li> <li> ----- </li> </template>
复制代码 综合小案例,如下:- <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.min.js" ></script> </head> <body> <div id="app"> <ol> <li v-for="site in sites"> {{ site.name }} </li> </ol> <!--利用模板化template进行循环--> <ul> <template v-for="site in sites"> <li>{{ site.name }}</li> <li>-------</li> </template> </ul> </div> <script> new Vue({ el:'#app', data:{ sites:[ {name:'Zhao'}, {name:'Xiao'}, {name:'yan'} ] } }); </script> </body></html>
复制代码 (3)v-for迭代对象
a.一个参数
原理:<li v-for="value in object"> {{ value }}
b.两个参数
原理:<li v-for="(value,key) in object" > {{ key }} : {{ value }}
(4)v-for迭代整数- <div id="app"> <ul> <li v-for="n in 10"> {{ n }} </li> </ul></div> <script>new Vue({ el: '#app'})</script>
复制代码 3、计算属性computed
计算属性主要适用于一些复杂的逻辑关系,- <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>计算属性</title> <script type="text/javascript" src="js/vue.min.js" ></script> </head> <body> <div id="app"> <p>原始字符串:{{message}}</p> <p>计算后反转字符串:{{reversedMessage}}</p> </div> <script> var vm=new Vue({ el:'#app', data:{ message:'Runoob' }, computed:{ //计算属性reversedMessage的getter reversedMessage:function(){ //this指向vm实例 return this.message.split('').reverse().join(''); } } }) </script> </body></html>
复制代码 由于computed用于计算属性,而reversedMessge相对于computed的属性的获得,其this指向的是vm的实例,当message发生改变的时候,对应的reversedMessage也会发生相对应改变。
扩展:computed VS methods
由于computed与methods实现效果相同,所以也可以使用methods来替代computes,
区别如下:
a、computed基于它的依赖缓存,只有相关依赖发生改变时,才会重新取值;
b、methods而言,在重新渲染的时候,函数总会重新调用执行。
可以说computed性能会更好,但若不希望缓存,可以使用methods属性
4、样式绑定
在vue中由于class与style是HTML元素的属性,用于设置元素的样式,可以用v-bind来设置样式属性
实例1:- <div v-bind:class="{active:isActive}"></div>
复制代码 等价于(1)vue.js.style(内联样式)- <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/vue.min.js" ></script> </head> <body> <div id="app"> <div v-bind:style="{color:activeColor,fontSize:fontSize + 'px'}">菜鸟教程</div> </div> <script> new Vue({ el:'#app', data:{ activeColor:'green', fontSize:30 } }) </script> </body></html>
复制代码 (2)使用数组将多个样式对象应用到一个元素上- <div v-bind:style="[baseStyles,overridingStyles]">菜鸟教程</div> <script> new Vue({ el:'#app', data:{ baseStyles:{ color:'green', fontSize:'30px' }, overridingStyles:{ 'font-weight':'blod' } } }) </script>
复制代码 以上这篇Vue条件循环判断+计算属性+绑定样式v-bind的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持模板人源码模板人源码·版权声明
本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
本网站所提供的信息,只供参考之用学习交流,切勿用作非法用途。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。 唯一网址: https://www.mubanren.com/thread-1366-1-1.html |
|