<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>第一个Vue程序</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="(item,index) in productList" :key="index">
{{item.name}}<br />
<span v-if="!item.del">{{item.specification+item.price}}元</span>
<span v-else style="text-decoration: line-through;">{{item.specification+item.price}}元</span>
<button v-show="item.del">删除</button>
</li>
</ul>
</div>
<script src="./vue.js"></script>
<script type="text/javascript">
var vm = new Vue({
el: '#app',
data: {
productList: [{
name: "坚果",
// 规格
specification: "1包500g",
price: 99,
del: false
},
{
name: "面包",
// 规格
specification: "1包1000g",
price: 10,
del: true
}
]
}
})
</script>
</body>
</html>
总结:
- Vue中的属性以_和$开头的都为内置属性。
- 将状态和方法写到data和methods中,主要是方便JS引擎去查找,提升性能。
- 插值( {{ }} )都是用于文本节点的,而指令(v-bind、v-for、v-if等等)都是用于属性节点的。
- 插值( {{ }} )里只能写表达式,不能写语句。
- v-if为false是不渲染当前元素,而v-show为false是将当前元素的行内样式设置为display:none。
- v-for是用于当前需要循环的元素(比如本例中的li标签)。
- 在uni-app中,vm的data必须为data(){return {}}这种形式。因为页面关闭时,数据不会自动销毁,再次打开该页面时,会显示上次数据。