javascript - 使用 Vue 3 将函数动态导入组件
问题描述
我想动态地(不是静态地)将函数导入到里面的组件中<script setup> ... </script>
函数位于pme-check.js文件中。
import { useStore } from 'vuex';
const store = useStore();
function foo() {
console.log('foo');
}
function bar() {
console.log('bar');
}
export { foo, bar };
在组件中,我像这样动态导入我的函数并且它可以正常工作
import(`../composables/profil/${store.state.formation.profil}-check`).then(
(module) => {
console.log(module.foo());
// -> 'foo'
console.log(module.bar());
// -> 'bar
}
);
但是这样一来,我的函数就不能在组件中通过名字来访问了。
如何获取组件的标签中的foo()
任何bar()
位置。<script setup>
谢谢
解决方案
可以将导入的函数赋值给ref
s 1️⃣,然后通过ref
s value
2️⃣使用函数:
<script setup>
import { ref, watchEffect } from 'vue'
let foo = ref()
let bar = ref()
watchEffect(() => {
import(`../composables/profil/${store.state.formation.profil}-check`)
.then((module) => {
1️⃣
foo.value = module.foo
bar.value = module.bar
})
})
const fooAndBar = () => {
2️⃣
foo.value()
bar.value()
}
</script>
推荐阅读
- google-cloud-platform - 使用服务账号认证谷歌云平台时如何打印错误码?
- sql - 使用多个 IN 运算符的子查询
- mongodb - 无法打开文件 /packages/repodata/repomd.xml
- spring - Spring Batch 在 Web 应用程序中找不到全局单例范围的 bean - 出了什么问题?
- go - go sql driver + context cancelled 似乎“泄漏”了 goroutines?
- django - 从站点登录到具有不同域和服务器的另一个站点
- python - 如何解决从 selenium 导入密钥的问题
- python - 在 {% if statement %} 中使用大于 (>) 或小于 (<) 不起作用
- javascript - 使用嵌套钩子更新状态
- c++ - 包含 typedef 时,如何用从右到左的规则解释变量声明?