最近我愛上了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。
是我想要做的可能嗎?
這就是我最終使用的。 –