目前最常用是props/$emitvuex/pinia ,接下来是 provide/inject,其他不建议使用;
实际项目中,简单父子组件传递采用props/$emit

1.props/$emit

2.Vuex/Pinia

vuex 是针对vue的一个状态管理插件,vue3 匹配vuex4,vue2匹配vuex 3的版本,包含六个核心

3.组件使用

Pinia 是 Vue 的存储库,也是为了实现跨组件/页面共享状态,但是Pinia 提供了一个更简单的 API,具有更少的仪式,提供了 Composition-API 风格的 API,最重要的是,在与 TypeScript 一起使用时具有可靠的类型推断支持;

1.创建Pinia实例定义状态数据

##TLADSWT##aHR0cHM6Ly9qaXhpbi51bnhzLmNu##TLADSWT##

3.provide/inject

主要适合父子组件,父和子孙组件通讯, 可以看作是长距离的 prop,支持在setup()中使

  • 父组件不需要知道哪些子组件使用了它 provide 的 property
  • 子组件不需要知道 inject 的 property 来自哪里

使用inject

当需要支持响应式注入,只需要在provide值使用ref 或着reactive

Logo

前往低代码交流专区

更多推荐