最近我爱上了Vue.js的single file components。让组件的模板和样式彼此接近非常好,现在我发现我编写的bug比现在少很多,因为它很容易将页面的一部分分解并在多个地方使用。是否可以将Vue.js模板编译为静态HTML和CSS文件?
我想知道是否可以将此单文件组件结构扩展为生成静态HTML页面,而不涉及Vue。
例如,假设我想要一个包含标题,节和页脚的主“内容”div的页面。使用Vue.js,我可以创建'header','section'和'footer'组件,并使用JavaScript在页面加载后实例化它们。因为页面的每个部分都在它自己的组件中,所以一个组件中的CSS不会影响另一个组件,并且我有更清晰的文件树来编辑。
然而,这似乎有点浪费,因为这些组件不实际的互动:我没有使用v-model
或v-bind
或v-on
,我只是用Vue.js,因为它让我的页面独立的部分了。这也意味着,如果JavaScript被禁用,我的页面将无法工作,因为每个元素(保存主要内容div)都依赖于Vue的可用性。
那么有没有什么办法可以编译.vue文件,而不是在运行时使用Vue.js加载这些组件的页面,而是分隔不带任何JavaScript呈现的HTML和CSS文件?
理想情况下,我有一个组件 'greeting.vue':
<template>
<p class="greeting">Hello!</p>
</template>
<style scoped>
.greeting { color: red; }
</style>
一个页面中使用:
<html>
<body>
<greeting></greeting>
</body>
</html>
而这将汇编成两个文件:与HTML页面模板编译和预渲染,以及包含所有组件样式的CSS文件。然后我可以将生成的样式表包含在页面中,并且所有组件都将被样式化。
我看过vue-loader和vueify,但我不明白他们在做什么,因为我没有使用Webpack或Browserify。
是我想要做的可能吗?
这就是我最终使用的。 –