非双向绑定数据
小于 1 分钟
非双向绑定数据
长列表以及不需要数据劫持的场景
Vue
会通过 Object.defineProperty
对数据进行劫持,来实现视图响应数据的变化,然而有些时候我们的组件就是纯粹的数据展示,不会有任何改变,我们就不需要 Vue
来劫持我们的数据,在大量数据展示的情况下,这能够很明显的减少组件初始化的时间,那如何禁止 Vue
劫持我们的数据呢?
可以通过 Object.freeze()
(冻结) 方法来冻结一个对象,一旦被冻结的对象就再也不能被修改了。或者可以用 Object.seal()
(密封)
export default {
data: () => ({
users: {}
}),
async created() {
const users = await axios.get("/api/users");
this.users = Object.freeze(users);
}
}