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 相关文章推荐
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
最简单的js图片切换效果实现代码
Sep 24 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
深入理解node exports和module.exports区别
Jun 01 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
Vue中的Props(不可变状态)
Sep 29 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
Apr 17 Javascript
JavaScript实现左右滚动电影画布
Feb 06 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python内置函数OCT详解
2016/11/09 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
竞职演讲稿范文
2014/01/11 职场文书
情侣吵架检讨书
2014/02/05 职场文书
初中作文评语大全
2014/04/23 职场文书
学校读书活动总结
2014/06/30 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
关于学习的决心书
2015/02/05 职场文书
教师网络培训心得体会
2016/01/09 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang