vue3 组合式api 孙子组件怎么调用爷组件属性和方法
时间: 2023-07-26 22:38:57 浏览: 254
Vue 之孙组件向爷组件通信的实现
在Vue3的组合式API中,你可以使用`provide`和`inject`来传递属性和方法。具体来说,你可以在爷组件中使用`provide`来提供需要传递的属性和方法,然后在孙子组件中使用`inject`来注入这些属性和方法。
例如,在爷组件中,你可以这样使用`provide`来提供属性和方法:
```javascript
import { provide } from 'vue'
export default {
setup() {
const name = 'John'
const sayHello = () => {
console.log('Hello!')
}
provide('name', name)
provide('sayHello', sayHello)
}
}
```
然后,在孙子组件中,你可以这样使用`inject`来注入这些属性和方法:
```javascript
import { inject } from 'vue'
export default {
setup() {
const name = inject('name')
const sayHello = inject('sayHello')
sayHello() // 输出 'Hello!'
console.log(`My name is ${name}`) // 输出 'My name is John'
}
}
```
这样就可以在孙子组件中访问爷组件中提供的属性和方法了。需要注意的是,`provide`和`inject`只能在组合式API中使用,不能在选项API中使用。
阅读全文