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 弹出窗体点击按钮返回选择数据的实现
Apr 01 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
jquery中使用循环下拉菜单示例代码
Sep 24 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
javascript的正则匹配方法学习
Feb 24 Javascript
js实现文字截断功能
Sep 14 Javascript
jQuery监听浏览器窗口大小的变化实例
Feb 07 Javascript
VUE实现可随意拖动的弹窗组件
Sep 25 Javascript
Vue如何获取数据列表展示
Dec 11 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警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
javascript 面向对象的JavaScript类
2010/05/04 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
JS回调函数深入理解
2019/10/16 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
学习党课思想汇报
2013/12/29 职场文书
新教师工作感言
2014/02/16 职场文书
小组名称和口号
2014/06/09 职场文书
大学专科求职信
2014/07/02 职场文书
活动总结报告怎么写
2014/07/03 职场文书
钢琴师观后感
2015/06/12 职场文书
正规欠条模板
2015/07/03 职场文书
2016国培学习心得体会
2016/01/08 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
Java Spring Lifecycle的使用
2022/05/06 Java/Android