请稍等 ...
×

采纳答案成功!

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

为什么这里用的是ref而不是reactive

老师的代码写的是

const schemaRef: Ref<any> = ref(schema)

而schema为

const schema = {
  type: 'string',
}

什么时候需要用ref而什么时候又该用reactive呢?我肤浅的理解是对于基础类型就用ref,对象的话就用reactive. 可是这里schema是一个对象,老师却用的是ref.

原因是否为

try {
    schema = JSON.parse(code)
} catch (error) {}
schemaRef.value = schema

虽然schema是一个对象,但是我们这里代码的意思是直接赋值给schema一个新的对象(而不是修改其中的某个属性的值),所以这里采用的是ref?

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

1回答

Jokcy 2021-03-23 21:53:14

ref只有`.value`才是响应式的,reactive的话每一层属性都是响应式的,在这里没必要。另外并没有特定的说一定要用ref或者reactive,根据自己的需求选择就可以

0 回复 有任何疑惑可以回复我~
  • 提问者 慕莱坞0998854 #1
    “reactive的话每一层属性都是响应式的,在这里没必要”,本节的代码的schema是 { type : 'string' }, 我猜想后面的schema应该会更复杂,比如会添加minLength之类的,然后根据schema的改变生成不同的表单,老师这么一说我怎么感觉更应该用reactive呢。。。
    回复 有任何疑惑可以回复我~ 2021-03-23 23:33:21
  • Jokcy 回复 提问者 慕莱坞0998854 #2
    响应式的意义在于你修改任意一个属性就会触发依赖其属性的effect,在这里schema的属性太多而且并不太需要根据schema的变化而做什么。
    回复 有任何疑惑可以回复我~ 2021-03-24 21:22:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信