inject 注入祖先数据(选项式)
最后更新:2026-10-22
inject 注入祖先数据(选项式)
inject 选项声明要注入的依赖:数组形式不设默认值,对象形式可写 from(换源)与 default(默认值)。
| 分组 | 选项式·组合与其他 |
|---|---|
| 类型 | 选项 |
| 作用域 | 组件内 |
| Vue 版本 | 3.0+ |
| SSR 支持 | 支持 |
📝 语法
export default {
inject: ["theme"],
// 或带默认值
inject: {
theme: { from: "theme", default: "light" }
}
}
⚙️ 参数
| value | 数组(键名列表)或对象({ from, default }) |
|---|
返回值:注入值挂到实例上,模板/脚本直接 this.xxx 使用
▶ 示例
修改下面的代码,在预览区实时查看效果:
输出:
没有祖先 provide 时显示「主题:默认亮色」。
💡 要点
💡 提示 对象形式 from 为实际键名,注入后在本组件用对象键名访问。
⚠️ 注意 默认值不要写共享对象(多个实例会共用),用工厂或 undefined 判断。
ℹ️ 说明 注入的 ref 保持响应性;模板自动解包。
🏷️ 相关组合与其他
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 数组和对象形式怎么选?
A 需要默认值或换键名用对象形式;简单场景数组更短。
Q 祖先没提供会报错吗?
A 数组形式返回 undefined(开发提示);对象形式用 default 兜底。
Q 能注入方法吗?
A 可以,祖先 provide 一个函数(常配 readonly 状态)给后代调用。