如何在script lang="ts" srtup 里引入全局挂载的属性
时间: 2024-03-12 15:50:02 浏览: 111
在 `setup()` 函数中,我们可以使用 `inject` 函数来访问全局挂载的属性。
首先,在 `main.ts` 文件中,我们可以将全局属性添加到 Vue 实例中:
```typescript
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.config.globalProperties.$myGlobalProperty = 'Hello World'
app.mount('#app')
```
在上述代码中,我们通过 `app.config.globalProperties` 将 `$myGlobalProperty` 添加到了 Vue 实例中,并将其设置为字符串 `'Hello World'`。
接下来,在组件的 `setup()` 函数中,我们可以使用 `inject` 函数来访问全局属性。例如:
```typescript
import { defineComponent, inject } from 'vue'
export default defineComponent({
setup() {
const myGlobalProperty = inject('$myGlobalProperty')
console.log(myGlobalProperty) // 输出:'Hello World'
return {
myGlobalProperty
}
}
})
```
在上述代码中,我们首先使用 `inject` 函数来注入全局属性 `$myGlobalProperty`,并将其赋值给了 `myGlobalProperty` 变量。
然后,我们可以在组件中使用 `myGlobalProperty` 变量来访问全局属性,例如在上述代码中,我们将其打印出来。
需要注意的是,`inject` 函数的第一个参数是我们要注入的属性名,在这个例子中是 `'$myGlobalProperty'`。另外,如果注入的属性不存在,`inject` 函数会返回 undefined。
阅读全文