1.vue封装可复用的组件
答:
首先在src目录下创建一个components文件夹
在这个文件夹创建组件
在需要用的组件中引入这个组件
比如:封装一个搜索框组件
1. 在components里面创建一个search.vue
2. 在search.vue中实现搜索框布局
3. 在props中接收传过来的数据
4. 在this.$emit发送这个方法给父组件
5. 接下来在父组件中import导入这个组件
6. 在父组件就可以使用子组件传过来的方法和值了
2.keep-alive的理解
答:
keep-alive是vue给我们提供的一个内置组件 这个组件作用就是缓存
一般情况下组件切换时会销毁 如果想不销毁保留一些状态 就可以使用keep-alive
keep-alive也只可以缓存想缓存的页面 可以用include和exclude 还可以使用正则
3.vue2中的过滤器
答:
所谓的过滤器就是将数据进行二次处理 处理成我们想要的数据
vue中过滤器分为两种 全局过滤器和局部过滤器 通过vue.filter来进行处理
比如说可以过滤后台返回的0和1改变为支付或未支付
4.vue中data发生改变时视图不更新如何解决
答:
vue中data发生改变视图不更新 是因为vue是响应式的 而我们新增的属性不是响应式的
当我们新增属性的时候vue是检测不到的 这是因为js的限制 所以无法更新到视图上
我们可以用this.$set()方法 this.$set()有三个参数 分别是是目标属性 新增属性 新增的值
5.为什么vue中的data是一个函数
答:
如果data是一个函数的话 当我们复用组件的时候就会重新返回一个data 它就类似于每个组件都
创建一个私有空间 让它们各自维护各自的数据 反而data是一个函数的话 就会所有组件共用一个data
就会导致一个变全都变的结果
所以data必须是一个函数 这是js特性带来的 而与vue本身设计无关