绑定class样式
:class="" (v-bind的缩写)
修改vue维护的数据,而非直接操作dom
绑定style,内联样式,交给vue管理(要对象,或者数组)
font-size -> fontSize 换位驼峰
⭐⭐⭐vue条件渲染
v-show 底层 -> 调整style行内样式, display:none
v-if dom节点都没了,彻底没了,没这个结构
选择:切换频率高,建议用v-show
template 最终渲染出来会被脱掉,注意:template只能配合v-if,不能配合v-show
好处:不用多写个div包裹<h2>破坏结构
⭐⭐⭐列表渲染
唯一标识也可以用index
in 也可以换成 of
重点是遍历数组!!!
key是vue在使用,在渲染为真实dom之后,dom上实际没有这个key
key原理讲解举例:特殊情况:
所以:数据的唯一标识最好由后端提供
列表过滤+列表排序
<div id="root"> <h2>人员列表</h2> <input type="text" placeholder="搜索" v-model="keyWord"> <button @click="sortRule = 2">按年龄升序</button> <button @click="sortRule = 1">按年龄降序</button> <button @click="sortRule = 0">默认</button> <ul> <li v-for="(item,index) in tempArr" :key="index"> {{item.name}} - {{item.age}} - {{item.sex}} </li> </ul> </div> </body> <script type="text/javascript"> Vue.config.productionTip = false const vm = new Vue({ el: '#root', data() { return { keyWord: '', sortRule: 0, // 0 默认,1 降序, 2 升序 persons: [ {id: '001', name: '马冬梅', age: 18, sex: '女'}, {id: '002', name: '周冬雨', age: 20, sex: '女'}, {id: '003', name: '周杰伦', age: 14, sex: '男'}, {id: '004', name: '温兆伦', age: 13, sex: '男'} ] } }, methods: {}, // 基于计算属性实现 computed: { tempArr() { const arr = this.persons.filter((p) => { return p.name.indexOf(this.keyWord) !== -1 }) if (this.sortRule) { arr.sort((p1, p2) => { // 简化:三元表达式 if (this.sortRule === 1) { return p2.age - p1.age } else { return p1.age - p2.age } }) } return arr } } }) </script>
computed执行条件,computed里面所使用到的变量一旦发生变化,则computed会重新执行
⭐⭐⭐更新时的问题
vue检测数据的原理_对象
标签:vue,return,name,age,day2,sex,computed From: https://www.cnblogs.com/joeyboy/p/17300133.html