1、 vue3 中的setup有什么用? setup的设计是为了 使用 组合式api 2、为什么不用之前的组件的选项 data、computed、methods、watch 组织逻辑在大多数情况下都有效。 然而,当我们的组件变得更大时,逻辑关注点的列表也会增长。 这可能会导致组件难以阅读和 理解 ,尤其是对于那些一开始就没有编写这些组件的人来说。
setup()函数特性
- setup()函数接收两个参数:props、context(包含attrs、slots、emit)。
- setup函数是处于生命周期beforeCreated和created俩个钩子函数之前。
- 执行setup时,组件实例尚未被创建(在setup()内部,this不会是该活跃实例得引用,即不指向vue实例,Vue为了避免我们错误得使用,直接将setup函数中得this修改成了undefined)。
- 与模板一起使用时,需要返回一个对象。
- 因为setup函数中,props是响应式得,当传入新的prop时,它将会被更新,所以不能使用es6解构,因为它会消除prop得响应性,如需解构prop,可以通过使用setup函数中得toRefs来完成此操作。
- 在setup()内使用响应式数据时,需要通过 .value 获取。
- 从setup() 中返回得对象上得property 返回并可以在模板中被访问时,它将自动展开为内部值。不需要在模板中追加.value。
- setup函数只能是同步的不能是异步的。