请稍等 ...
×

采纳答案成功!

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

响应式数据用reactive包装的疑问

我没有用reactive包装数据,页面数据也跟着变化了。不知道哪里出了问题。2秒后5秒后数据state1的数据都跟着变了。

https://img1.sycdn.imooc.com//szimg/6178af0209782e4304210789.jpghttps://img1.sycdn.imooc.com//szimg/6178af4c09d0c25e02440193.jpghttps://img1.sycdn.imooc.com//szimg/6178afa8099c893902400204.jpghttps://img1.sycdn.imooc.com//szimg/6178afb209f1bbf402630198.jpg

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

1回答

双越 2021-10-27 16:42:00

你虽然么用 reactive ,但你用了 toRef ,就相当于你自己创建了一个 ref (代码中的 ageRef1)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕工程2575929 #1
    但是您举的例子里也用了toRef,仅仅是state的赋值方式变了,toRef还是保留的,但页面渲染的数值没有变化。
    回复 有任何疑惑可以回复我~ 2021-10-27 16:52:39
  • 双越 回复 提问者 慕工程2575929 #2
    是不太一样,你用的 vue 是什么版本?课程里的是 3.0.4
    回复 有任何疑惑可以回复我~ 2021-10-27 22:41:02
  • 提问者 慕工程2575929 回复 双越 #3
    用的是3.0.0的版本,但是我在您的案例里又重新定义了一个没有用reactive封装的对象,那个对象也能实现响应式。 setup() {
        const state = reactive({
          age: 20,
          name: '双越'
        })
        const state1 = {
          age: 20,
          name: '双越'
        }
        const ageRef = toRef(state, 'age')
        const ageRef1 = toRef(state1, 'age')
    
        setTimeout(() => {
          state.age = 25
          state1.age = 25
        }, 1500)
        setTimeout(() => {
          ageRef.value = 30 
          ageRef1.value = 30 
        }, 3000)
        return {
          state,
          ageRef,
          state1,
          ageRef1
        }
      }
    回复 有任何疑惑可以回复我~ 2021-10-28 08:43:28
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信