知识点

原创 二二得斯 随笔 随笔 54阅读 24 天前 举报

知识点总结

vue使用注意事项:

避免 v-if 和 v-for 用在一起

<ul>
<li v-for="user in users"
v-if="user.isActive"
:key="user.id">
{{ user.name }}
</li>
</ul>

原因:v-for优先级比v-if优先级高。上面的情况是先遍历出所有的users,再根据v-if的条件进行判断。
解决办法:
1,users替换成计算属性,过滤后再返回。
2,直接循环users,过滤掉不想展示的item。

操作数组、对象

1,vm.items[indexOfItem] = newValue 不起作用
2,vm.items.length = newLength 不起作用

原因及解决办法:https://cn.vuejs.org/v2/guide/list.html#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9
原因及解决办法:https://cn.vuejs.org/v2/guide/reactivity.html

异步队列更新 Vue.nextTick()

https://cn.vuejs.org/v2/guide/reactivity.html#%E5%BC%82%E6%AD%A5%E6%9B%B4%E6%96%B0%E9%98%9F%E5%88%97

es6 javascript对象方法Object.assign()

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };

const returnedTarget = Object.assign(target, source);

console.log(target);
console.log(returnedTarget);

const newob = Object.assign({}, {a:1},{b:2},{b:2,c:3});

注意:Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。

var obj1 = {a: {b: 1}};
var obj2 = Object.assign({}, obj1);
obj1.a.b = 2;
obj2.a.b = ?

浅拷贝,深拷贝

https://juejin.im/post/59ac1c4ef265da248e75892b

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复