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


Posted in Javascript onSeptember 18, 2018

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

Javascript 相关文章推荐
通过AJAX的JS、JQuery两种方式解析XML示例介绍
Sep 23 Javascript
js实现点击图片改变页面背景图的方法
Feb 28 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
AngularJs每天学习之总体介绍
Aug 07 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
浅谈layui 表单元素的选中问题
Oct 25 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 #Javascript
记React connect的几种写法(小结)
Sep 18 #Javascript
Vue循环组件加validate多表单验证的实例
Sep 18 #Javascript
vue2.0 + ele的循环表单及验证字段方法
Sep 18 #Javascript
JavaScript指定断点操作实例教程
Sep 18 #Javascript
对VUE中的对象添加属性
Sep 18 #Javascript
微信小程序适配iphoneX的实现方法
Sep 18 #Javascript
You might like
一个PHP的String类代码
2010/04/20 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
基于php-fpm的配置详解
2013/06/03 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
php分页函数示例代码分享
2014/02/24 PHP
分享php多功能图片处理类
2016/05/15 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
基python实现多线程网页爬虫
2015/09/06 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python字符串string的内置方法实例详解
2018/05/14 Python
python 实现倒排索引的方法
2018/12/25 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
python开发入门——set的使用
2020/09/03 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
九一八事变演讲稿范文
2014/09/14 职场文书
2014年防汛工作总结
2014/12/08 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS