【发布时间】:2018-12-25 05:07:14
【问题描述】:
我正在构建一个 不是 单页应用程序的 Web 应用程序(它是 ASP.NET Core 2 MVC,但在这里应该没有任何区别)。我非常高兴地使用 Vue.js 通过Vue 实例在前端提供功能。到了我需要将东西提取到可重用组件中的地步,我可以像这样与Vue 实例一起做:
<script type="text/javascript" src="/js/dev/vue.js"></script>
<div id='app'>
<my-component message="Hi there!" />
</div>
<script>
Vue.component('my-component', {
template: '<p>{{ message }}</p>',
props: { message: String }
});
var app = new Vue({ el: '#app' });
</script>
我希望能够将我的组件定义为 Vue 的单个文件组件之一(带有 .vue 扩展名),而不是像这样声明它们,但我能找到的所有文档和教程都专注于单页应用程序,我我不确定如何修改该信息以适合我。
我已经使用 Vue CLI 并想出了如何告诉它使用捆绑的 webpack 配置来构建库而不是 SPA,但是它构建了一个 UMD 或 CommonJS 捆绑文件,我这样做了不知道怎么用!
我对webpack不熟悉,但我愿意学习。我目前在这个项目中使用 Gulp 来处理其他东西,所以如果我能坚持使用 Gulp 那就太好了,但如果我需要切换到 webpack,我会的。
【问题讨论】:
-
Vue SFC 由
Vue-template-compiler预处理,所以为了使用它们,我建议创建一个简单的main.js文件,该文件导入所有需要的SFC,然后将Webpack 指向这个main.js.它将生成一个捆绑包 - 将其命名为components.js,然后将其作为普通 SCRIPT 标记包含在所有相关页面上。在每个页面上,您都需要为每个组件实例化一个或多个 Vue 实例——就像您在示例中所做的那样。也可以看github.com/ckhrysze/multipage-vue -
谢谢,您能否提供一个示例来实现这一目标?我整个下午都在尝试掌握 webpack,但它......很难:-|
标签: javascript vue.js vuejs2 vue-component