视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2020-11-27 22:07:34 责编:小采
文档


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>

等价于

<div class="active">

(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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

下载本文
显示全文
专题