1.说明与比较:new Vue() 和 export default {}
在生成、导出、导入、使用 Vue 组件的时候,像我这种新手就会常常被位于不同文件的 new Vue() 和 export default{} 搞得晕头转向。
它们含义到底是什么,又有什么异同呢?
首先,Vue 是什么? po 主的理解是 Vue 就是一个构造函数,生成的实例是一个巨大的对象,可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。
所以渲染的时候,可以使用构造 Vue 实例的方式来渲染相应的 html 页面:
new Vue({
el: '#app'
...
})
那么 export default {} 又是来干嘛的?
这是在复用组件的时候用到的。假设我们写了一个单页面组件 A 文件,而在另一个文件 B 里面需要用到它,那么就要用 ES6 的 import/export 语法 ,在文件 A 中定义输出接口 export **,在文件 B 中引入 import **,然后再生成一个 Vue 实例 new Vue (**),把引入的组件用起来,这样就可以复用组件 A 去配合文件 B 生成 html 页面了。
所以在复用组件的时候,export 和 new Vue 缺一不可。new Vue是启动一个实例,export default只是一个组件
2.对data与name的理解
export default {
name: 'app',
data: function () {
return {
telphone: "0356-1234567"
}
}
}
①name
A.name属性在组件递归的时候有用
B.指定 name 选项的另一个好处是便于调试。有名字的组件有更友好的警告信息。另外,当在有 vue-devtools, 未命名组件将显示成 <AnonymousComponent>, 这很没有语义。通过提供 name 选项,可以获得更有语义信息的组件树。
②data是一个函数
调用 data 函数,用return返回初始数据的一个全新副本数据对象,就避免了所有实例共享引用同一个数据对象。
③export出来的是一个Vue实例
3.页面只显示数据的前3
1.
<template v-for="(attr, index) in attrs">
<van-image
:src="'/images/' + attr.filePath"
width="72px"
height="72px"
v-if="index < 3"
:key="index"
/>
</template>
2.limitBy 计算属性代替了
computed: {
attrs: function() {
return this.product.attrs.slice(0, 3);
}
},