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 相关文章推荐
一个不错的用JavaScript实现的UBB编码函数
Mar 09 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
html5+javascript制作简易画板附图
Apr 25 Javascript
jQuery中first()方法用法实例
Jan 06 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
jQuery获取当前点击的对象元素(实现代码)
May 19 Javascript
Ionic学习日记实现验证码倒计时
Feb 08 Javascript
微信小程序返回箭头跳转到指定页面实例解析
Oct 08 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
浅谈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程序员工具
2008/05/26 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python实现C4.5决策树算法
2018/08/29 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
初二学习计划书范文
2014/04/27 职场文书
副处级干部考察材料
2014/05/17 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python