关于为何组件data必须是个函数

来源:5-3 vue真题演练2-组件data为何是函数

精神小伙卓涛

2020-11-05

老师,您在讲解中说data在闭包之中。这里不太理解。
闭包不是指内部函数被保存在了外部吗。
这里并没有return data,为什么说在闭包之中。
是因为export default{ } 相当于return { }吗?

写回答

2回答

慕粉3871079

2021-02-23

你可以理解假如他不是一个函数,没有私有域,那么我是否是存在n个命名一样的变量,比如n个name,那肯定会造成全局的变量污染。

0
0

双越

2020-11-06

组件相当于 class ,它可能会被用到很多个地方,这就类似于 new class 实例。

而对于每一个实例,data 都必须是独立的,所以要用函数返回。

如果不用函数,那多个实例就公用一个 data 了,这样就乱套了。

0
8
海浪浪
回复
qq_泰阳_0
1. 为何组件 data 必须是一个函数? 1. 组件是被 export 出去的,如果 data 是属性,也是作为一个 指针 export 出去的 2. 每次组件实例化的时候,入参的 data 都是同一个指针。则每个示例的data都指向同一个指针。 3. 因此就共享了,如果 data 是函数,data 函数执行后,数据只会挂载当前示例上,而不会共享。 https://juejin.cn/post/6844903638939205640
2022-07-03
共8条回复

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4663 学习 · 1644 问题

查看课程