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 相关文章推荐
自己开发Dojo的建议框架
Sep 24 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
原始XMLHttpRequest方法详情回顾
Nov 28 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
JS运动特效之同时运动实现方法分析
Jan 24 Javascript
Vue实现购物车实例代码两则
May 30 Javascript
Vue自定义多选组件使用详解
Sep 08 Javascript
js动态生成表格(节点操作)
Jan 12 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 JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
Python的pycurl包用法简介
2015/11/13 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
详解python中的模块及包导入
2019/08/30 Python
wxPython实现文本框基础组件
2019/11/18 Python
python 基于opencv实现图像增强
2020/12/23 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
党员对照检查材料
2014/09/22 职场文书
学术会议通知范文
2015/04/15 职场文书
创业计划书之服装
2019/10/07 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers