hasInjectionContext() 判断是否可安全 inject
最后更新:2026-10-22
hasInjectionContext() 判断是否可安全 inject
hasInjectionContext() 判断当前是否处于可用 inject 的上下文(setup 或组件内部),写公共工具函数时用来做前置检查。
| 分组 | 依赖注入 |
|---|---|
| 类型 | API |
| 作用域 | 组件内 |
| Vue 版本 | 3.3+ |
| SSR 支持 | 支持 |
📝 语法
if (hasInjectionContext()) {
const cfg = inject('config')
}
返回值:布尔值
▶ 示例
修改下面的代码,在预览区实时查看效果:
输出:
显示「上下文可用:true」。
💡 要点
ℹ️ 说明 写库/工具函数时先探测上下文,避免在非组件环境调用 inject 触发警告。
⚠️ 注意 3.3+ 才有;低版本项目可用「在 setup 里 try/catch」或显式传参替代。
🏷️ 相关依赖注入
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 不用它会怎样?
A 在非组件环境调用 inject 会得到警告并返回 undefined,逻辑可能静默出错。
Q 典型使用者是谁?
A 组件库与组合式工具函数:既要支持注入式配置,又要能在纯 JS 环境运行。
Q 它等于“在 setup 中”吗?
A 近似:凡是允许 inject 的运行时上下文都返回 true(含 effectScope 内运行的组合式函数)。