首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按需创建Vue3+composition API应用程序

如何按需创建Vue3+composition API应用程序
EN

Stack Overflow用户
提问于 2021-12-22 16:18:02
回答 1查看 67关注 0票数 0

我计划将两个Vue2应用程序重写为Vue3+composition API。但问题是,它们不是立即初始化的,而是在一些用户交互之后才初始化的。

在Vue2中,我可以:

代码语言:javascript
复制
import MyApp from './MyVue2App.vue';
import Vue from 'vue';

export default { Vue: Vue, MyApp: MyApp }

然后我可以通过requirejs获得这些导出,这样应用程序就可以完全按需提供。

不过,我无法对Vue3做类似的事情。最丑陋的解决方案是将createAppMyApp.vue存储在window中(我非常希望避免使用全局变量),例如:

代码语言:javascript
复制
// main.ts
import { createApp } from 'vue';
import App from './MyVue3App.vue;

// export default { createApp, App } <- doesn't work, can't import from the bundle
window.MyVue3App = App
window.createApp = createApp
代码语言:javascript
复制
// index.html
<script src="vendor.js"></script>
<script src="app.js"></script>

<div id="foo"></div>

<button onclick="window.createApp(window.MyVue3App).mount('#foo')">
  Mount APP
</button>

有人知道如何在不使用全局变量的情况下工作吗?我在一个干净的vue-cli项目上。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-13 12:06:38

它可以通过将应用程序构建为一个库来实现。

代码语言:javascript
复制
// vite.config.ts

export default defineConfig({
  build: {
    lib: {
      entry: 'path/to/build.ts',
      name: 'ComponentsLib',
      fileName: format => `components-lib.${format}.js`
    }
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70452087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档