Vue3 中可以使用'createApp'创建应用,然后通过'provide'和'inject'实现组件之间的传值。不再需要使用 Vue2 中的'$bus'。

  1. 创建应用
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)
  1. 在组件中使用'provide'提供数据
export default {
  setup() {
    const message = 'Hello world'
    provide('message', message)
    ...
  }
}
  1. 在需要接收数据的组件中使用'inject'获取数据
export default {
  setup() {
    const message = inject('message')
    ...
  }
}

使用'inject'时,可以提供一个默认值作为参数。如果'provide'中没有提供相应的值,就会使用默认值。

export default {
  setup() {
    const message = inject('message', 'Default message')
    ...
  }
}
Vue3 组件传值:使用 provide 和 inject 替代 $bus

原文地址: https://www.cveoy.top/t/topic/lZzL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录