通過html文件來使用Vue的單文件組件形式詳解
非單文件組件
可以理解為是通過 html 文件來使用 Vue。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <div id="app"></div> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> <script> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' }, template: '<div id="app">{{ message }}</div>' }) </script> </body> </html>
這種方式在很多中小規(guī)模的項目中運(yùn)作的很好,在這些項目里 JavaScript 只被用來加強(qiáng)特定的視圖。但當(dāng)在更復(fù)雜的項目中,或者你的前端完全由 JavaScript 驅(qū)動的時候,下面這些缺點將變得非常明顯。
非單文件組件缺點
- 全局定義 (Global definitions) 強(qiáng)制要求每個 component 中的命名不得重復(fù)
- 字符串模板 (String templates) 缺乏語法高亮,在 HTML 有多行的時候,需要用到丑陋的 \
- 不支持 CSS (No CSS support) 意味著當(dāng) HTML 和 JavaScript 組件化時,CSS 明顯被遺漏
- 沒有構(gòu)建步驟 (No build step) 限制只能使用 HTML 和 ES5 JavaScript,而不能使用預(yù)處理器,如 Sass 和 Babel
單文件組件
文件擴(kuò)展名為 .vue 的 single-file components (單文件組件) 為以上所有問題提供了解決方法,并且還可以使用 webpack 或 Browserify 等構(gòu)建工具。
<template> <div> {{ message }} </div> </template> <script> export default { data() { return { message: 'hello world' } } } </script>
這些特定的語言只是例子,你可以只是簡單地使用 Babel、TypeScript、SCSS、PostCSS 或者其他任何能夠幫助你提高生產(chǎn)力的預(yù)處理器。
單文件組件一般可以通過 Vue CLI 腳手架快速搭建一個項目,并且已經(jīng)幫你配置好了 Babel、Webpack 熱更新等功能。
后續(xù)所有和 Vue 相關(guān)的文章都會以單文件組件的形式來舉例,更多關(guān)于Vue單文件組件形式的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue-router中hash模式與history模式的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于Vue-router中hash模式與history模式區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12在Vue中用canvas實現(xiàn)二維碼和圖片合成海報的方法
這篇文章主要介紹了在Vue中用canvas實現(xiàn)二維碼和圖片合成海報的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06