1.3 条件渲染、列表渲染

1. 条件渲染

1.1 条件渲染指令
1) v-if 与 v-else

2) v-show

1.2 比较 v-if 与 v-show
3) 如果需要频繁切换 v-show 较好

4) 当条件不成立时,v-if 的所有子节点不会解析(项目中使用)

div id="demo">
  <p v-if="ok">表白成功</p>
  <p v-else>表白失败</p>

  <hr>
  <p v-show="ok">求婚成功</p>
  <p v-show="!ok">求婚失败</p>

  <button @click="ok=!ok">切换</button>
</div>

<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
  new Vue({
    el: ‘#demo‘,
    data: {
      ok: true,
    }
  })
</script>

 2. 列表渲染

1) 列表显示指令

  数组:v-for/index

  对象:v-for/key

2) 列表的更新显示

   删除 item 替换 item

3) 列表的高级处理
  列表过滤
  列表排序

<div id="demo">
  <h2>测试: v-for 遍历数组</h2>
  <ul>
    <li v-for="(p, index) in persons" :key="index">
      {{index}}--{{p.name}}--{{p.age}}
      --<button @click="deleteP(index)">删除</button>
      --<button @click="updateP(index, {name:‘Cat‘, age: 16})">更新</button>
    </li>
  </ul>
  <button @click="addP({name: ‘xfzhang‘, age: 18})">添加</button>

  <h2>测试: v-for 遍历对象</h2>

  <ul>
    <li v-for="(item, key) in persons[1]" :key="key">{{key}}={{item}}</li> <!--用的比较少-->
  </ul>

</div>

<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
  // vue本身只是监视了persons的改变,没有监视数组内部数据的改变
  // vue重写了数组中的一系列改变数组内部数据的方法(先调用原生的,再更新界面) ———>数组内部数据改变,界面变化
  new Vue({
    el: ‘#demo‘,
    data: {
      persons: [
        {name: ‘Tom‘, age:18},
        {name: ‘Jack‘, age:17},
        {name: ‘Bob‘, age:19},
        {name: ‘Mary‘, age:16}
      ]
    },

    methods: {
      deleteP (index) {
        this.persons.splice(index, 1) // 调用了不是原生数组的splice(), 而是一个变异(重写)方法,这里的1表示删除1个元素
              // 1. 调用原生的数组的对应方法
              // 2. 更新界面
      },

      updateP (index, newP) {
        console.log(‘updateP‘, index, newP)
        // this.persons[index] = newP  // 并没有改变persons本身,数组内部发生了变化,但没有调用变异方法,vue不会更新界面(vue根本就不知道)
        this.persons.splice(index, 1, newP)
        // this.persons = [] //改变了persons本身
      },

      addP (newP) {
        this.persons.push(newP)
      }
    }
  })
</script>

原文地址:https://www.cnblogs.com/shiyun32/p/9611308.html

时间: 2024-11-01 00:58:47

1.3 条件渲染、列表渲染的相关文章

微信小程序自学第五课:条件渲染、列表渲染

一.条件渲染 1. wx:if 在框架中,我们用 wx:if="{{condition}}" 来判断是否需要渲染该代码块: <view wx:if="{{condition}}"> True </view> 也可以用 wx:elif 和 wx:else 来添加一个 else 块: <view wx:if="{{length > 5}}"> 1 </view> <view wx:elif=

【03】Vue 之列表渲染及条件渲染

3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v-if的指令,帮助我们完成判断的模板处理. <div id="app"> <h1 v-if="ok">Yes</h1> <h1 v-else>No</h1> </div> <!-- 当ok为tr

Vue学习计划(基础三)-class与style绑定,条件渲染和列表渲染

Class与style绑定.条件渲染和列表渲染 目标: 熟练使用class与style绑定的多种方式 熟悉v-if与v-for的用法,以及v-if和v-for一起使用的注意事项 class与style绑定的多种方式 绑定class和style都是使用v-bind也就是: 无论是绑定class还是style,都有两种方式,一种是对象,一种是数组. class和:class是共存的 绑定示例 1.class对象绑定 <!-- 根据isActivity的真假,判断是否应用activity这个class

VUE:条件渲染和列表渲染

条件渲染 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!-- 1.条件渲染指令 v-if v-else 移除标签 v-show 通过样式隐藏 2.比较 v-if 与v-show 如果需要频繁切换 v-show 较好 --> <div id="

【WeChat 小程序】005 - 条件渲染以及列表渲染

条件渲染 1. 概念: 只有当条件成立时才渲染生成 2.wx:if属性的设置 示例代码: <text wx:if="{{thisWeekMovie.isHighlyRecommended}}">强烈推荐</text> 注:只有当thisWeekMovie.isHighlyRecommended为真时,界面元素才会被渲染 类似的:使用hidden属性也可以实现类似的效果,但元素总是会被生成,增大初始化开销 <text hidden="{{!this

Vue.js 实战教程 V2.x(10)列表渲染

10列表渲染 10.1用 v-for 把数组对应为元素 <ul id="example-1"> <li v-for="item in items"> {{ item.message }} </li> </ul> var example1 = new Vue({ el: '#example-1', data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } })

Vue基础篇--5列表渲染v-for

Vue基础篇--5列表渲染v-for 1.用v-for把一个数组对弈为一组元素 我们用v-for指令根据一组数组选项列表进行渲染. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <script src="./vue.js"

Vuejs——(1)入门(单向绑定、双向绑定、列表渲染、响应函数)

版权声明:出处http://blog.csdn.net/qq20004604 目录(?)[+] 参照链接: http://cn.vuejs.org/guide/index.html [起步]部分 本文是在其基础上进行补全和更详细的探寻 嗯,根据朋友的建议,我改投vue阵营了 (一)单向绑定 [javascript] view plain copy <div id="app"> {{ message }} </div> <script> new Vue

小程序基础12:列表渲染

1.列表渲染 wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件. 默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item <view wx:for="{{array}}"> {{index}}: {{item.message}} </view> Page({ data: { array: [{ message: 'foo', }, { message: 'bar' }] } }) 使用 w