欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue provide和inject

傅智翔2年前9瀏覽0評論

Vue中的provide和inject是組件間通信的一種方式。當我們需要把一個組件中的數據或方法傳遞給另一個組件時,我們可以使用provide和inject來實現。

provide和inject是Vue中的非響應式屬性,用于父組件向子組件傳遞數據或方法。provide用來提供數據,inject用來注入。

// parent.vue
export default {
provide() {
return {
foo: 'bar',
doSomething() {
console.log('do something')
}
}
}
}
// child.vue
export default {
inject: ['foo', 'doSomething'],
mounted() {
console.log(this.foo) // bar
this.doSomething() // do something
}
}

在上述示例中,我們在父組件中通過provide提供了一個字符串‘bar’和一個方法doSomething,然后在子組件中通過inject注入了這兩個屬性,并打印了出來。

注意:provide和inject是不具有響應式的,也就是說當provide的值發生改變時,inject并不會收到一份新的值。因此,我們在provide提供的對象中不應該包含可變的數據。如果需要響應式的數據傳遞,可以考慮使用Vue的響應式屬性或事件總線來實現。

另外,我們可以使用對象方式來提供provide和注入inject:

// parent.vue
export default {
provide: {
foo: 'bar',
doSomething() {
console.log('do something')
}
}
}
// child.vue
export default {
inject: {
foo: 'foo',
doSomething: 'doSomething'
},
mounted() {
console.log(this.foo) // bar
this.doSomething() // do something
}
}

在上述示例中,我們在provide和inject中使用了對象方式,提供了鍵和值的映射關系。

最后,需要注意的是,為了避免命名沖突,我們應該盡量使用唯一的鍵來提供和注入數據或方法。