Vue条件循环判断+计算属性+绑定样式v-bind的实例

所属分类: 网络编程 / JavaScript 阅读数: 781
收藏 0 赞 0 分享

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

更多精彩内容其他人还在看

AngularJs IE Compatibility 兼容老版本IE

本文主要介绍AngularJs IE Compatibility 兼容老版本IE的问题及解决办法,有兴趣的小伙伴可以参考下
收藏 0 赞 0 分享

AngularJs Modules详解及示例代码

本文主要介绍AngularJs Modules的相关知识,这里整理了详细的资料及简单示例代码,有兴趣的朋友可以参考下
收藏 0 赞 0 分享

AngularJs Scope详解及示例代码

本文主要介绍AngularJs Scope的知识,这里整理了详细资料及示例代码,有兴趣的小伙伴可以参考下
收藏 0 赞 0 分享

node.js中module.exports与exports用法上的区别

Node.js 引入了模块(Module)概念,一个模块可以通过module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过require() 函数引入并使用。那么node.js中module.exports与exports有什么
收藏 0 赞 0 分享

基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)

这篇文章主要介绍了基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)

最近做了一个项目,其中有需求要求实现发送短信验证码后倒计时功能,其中有个难点:要求关闭页面也进行倒计时。好吧,下面小编把jquery 发送验证码倒计时的实现代码分享给大家,大家可以参考下
收藏 0 赞 0 分享

js绘制购物车抛物线动画

这篇文章主要为大家详细介绍了js绘制购物车抛物线动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

vue.js入门教程之绑定class和style样式

小编之前介绍了通过vue.js计算属性,不知道大家都学会了吗。那这篇文章中我们将一起学习vue.js实现绑定class和style样式,有需要的朋友们可以参考借鉴。
收藏 0 赞 0 分享

纯JS实现可拖拽表单的简单实例

下面小编就为大家带来一篇纯JS实现可拖拽表单的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

js实现StringBuffer的简单实例

下面小编就为大家带来一篇js实现StringBuffer的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多