vue2 Inject
时间: 2024-12-19 10:27:29 浏览: 11
在 Vue 2 中,“Inject”通常是指使用 `inject` 或者 `provide` 功能来进行组件间的依赖注入。这主要用于解决组件树层级深、父子组件间通信的问题,尤其是当组件不需要共享状态而只需要共享函数或者配置信息时。
**Provide and inject:**
- **Provide:** 父组件可以通过 `this.$provide` 对象设置一个键值对,提供一个服务或值给子组件。例如:
```javascript
// 父组件
export default {
provide() {
return { someValue: this.someComputedValue };
},
};
```
- **Inject:** 子组件可以在其 `created` 或 `beforeCreate` 生命周期钩子里通过 `this.$inject` 来接收这些已提供的值:
```javascript
// 子组件
import { mapState } from 'vuex';
export default {
created() {
this.$inject('someValue'); // 获取父组件提供的 someValue
},
computed: {
...mapState(['otherValue']),
},
};
```
**注意点:**
- `provide` 和 `inject` 主要在自定义插件或者模块化开发中使用,避免过度使用导致组件过于复杂。
- 遵循高内聚低耦合的原则,提供服务或值应当仅限于那些跨层级复用的通用功能。
阅读全文