Vue3$Data-InAction

63 阅读1分钟

Vue3$Data-InAction

在 Vue 中定义数据有多种方式,在实际使用中需要思考两个问题:

  • Which:使用什么样的数据
  • Where:数据放到哪里

Which

有些类型非常明显,只要知道它们的用处,就不需要思考在哪里使用了。

Where

  1. refreactive Vue3$Data-RefAndReactive:组件内的响应式数据
    1. 如果多个组件使用时,需要“状态提升”(提升到共同的祖先组件)
      1. 提升到父组件时:可使用 propsv-model 接住
      2. 提升到父组件以上时:可使用 provide + inject
      3. 太多组件使用时:可使用 store
  2. props Vue3$Data-Props:如果当前组件只是展示内容,或者 props 只是提供初始值(消费者)
    1. 也可以将操作 props 的方法也传入组件内,这样就形成了“双向绑定”
  3. v-model Vue3$Data-V-Model:当前组件需要处理父组件的数据(表单)
  4. provideinject Vue3$Data-ProvideAndInject:如果当前组件的“源数据”在祖父组件以上(虽然也可以是父组件)
  5. store Vue3$Data-Pinia:多个页面使用时可以使用pinia