请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于BScorll 实例是否应该加入响应式里面。

图片描述
有点不明白slider的实例为什么要添加到响应数据里面图片描述
我这样写有什么问题吗?个人理解在options API 里面实例是用this接受的是为了在不同的钩子里面可以访问到,但是在Composition API 实例可以定义在一个函数作用域内,是否还需要加入响应式里面?加入响应式和不加入响应式有什么区别,我没有加入好像也是可以的。望详解。

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2021-05-09 19:27:22

由于 Slider 对象没有外部引用,所以你这看上去是没有问题的,但是如果外部使用了

比如 

const { slider } = useSlider(rootRef)

那么这个 slider 如果不是响应式的,那么永远都是 undefined

0 回复 有任何疑惑可以回复我~
  • 提问者 Lchyang #1
    这是因为setup函数是在vue实例创建之前调用的,而betterScorll实例化是在mounted之后,如果没有加入响应setup里面拿到的就是一开始初始化的值undefined,而加入了响应当初始化完成之后slider的值是响应的了,可以监听到数据的变化了,外部就可以访问到变化的值了,可以这样理解吧。
    回复 有任何疑惑可以回复我~ 2021-05-09 22:14:30
  • ustbhuangyi 回复 提问者 Lchyang #2
    组件实例创建在 setup 函数执行之前,但是 setup 执行的时候,组件还没有 mounted。
    回复 有任何疑惑可以回复我~ 2021-05-10 01:22:35
  • 提问者 Lchyang 回复 ustbhuangyi #3
    由于在执行 setup 时,组件实例尚未被创建,因此在 setup 选项中没有 this。这意味着,除了 props 之外,你将无法访问组件中声明的任何属性——本地状态、计算属性或方法。 ---vue官方文档里面这样写的
    回复 有任何疑惑可以回复我~ 2021-05-13 12:00:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信