文章出處

前面的話

  本文將詳細介紹Vue單文件組件

 

概述

  在很多 Vue 項目中,使用 Vue.component 來定義全局組件,緊接著用 new Vue({ el: '#container '}) 在每個頁面內指定一個容器元素。

  這種方式在很多中小規模的項目中運作的很好,在這些項目里 JavaScript 只被用來加強特定的視圖。但當在更復雜的項目中,或者前端完全由 JavaScript 驅動的時候,下面這些缺點將變得非常明顯:

  1、全局定義 (Global definitions) 強制要求每個 component 中的命名不得重復

  2、字符串模板 (String templates) 缺乏語法高亮,在 HTML 有多行的時候,需要用到丑陋的 \

  3、不支持 CSS (No CSS support) 意味著當 HTML 和 JavaScript 組件化時,CSS 明顯被遺漏

  4、沒有構建步驟 (No build step) 限制只能使用 HTML 和 ES5 JavaScript, 而不能使用預處理器,如 Pug (formerly Jade) 和 Babel

  文件擴展名為 .vuesingle-file components(單文件組件) 為以上所有問題提供了解決方法,并且還可以使用 Webpack 或 Browserify 等構建工具

  下面是一個文件名為 Hello.vue 的簡單實例:

 

  通過單文件組合,現在我們獲得:

1、完整語法高亮
2、CommonJS 模塊
3、組件化的 CSS

  還可以使用預處理器來構建簡潔和功能更豐富的組件,比如 Pug,Babel (with ES2015 modules),和 Stylus。

  這些特定的語言只是例子,可以只是簡單地使用 Babel,TypeScript,SCSS,PostCSS - 或者其他任何能夠幫助提高生產力的預處理器。如果搭配vue-loader使用Webpack,它也是把CSS Modules當作第一公民對待

【關注點分離】

  一個重要的事情值得注意,關注點分離不等于文件類型分離。在現代 UI 開發中,已經發現相比于把代碼庫分離成三個大的層次并將其相互交織起來,把它們劃分為松散耦合的組件再將其組合起來更合理一些。在一個組件里,其模板、邏輯和樣式是內部耦合的,并且把它們搭配在一起實際上使得組件更加內聚且更可維護。

  即便不喜歡單文件組件,仍然可以把 JavaScript、CSS 分離成獨立的文件然后做到熱重載和預編譯

<!-- my-component.vue -->
<template>
  <div>This will be pre-compiled</div>
</template>
<script src="./my-component.js"></script>
<style src="./my-component.css"></style>

 

起步

  有了 .vue 組件,就進入了高級 JavaScript 應用領域

  最好參考 webpack-simple。只要遵循指示,就能很快地運行一個用到 .vue 組件,ES2015 和 熱重載 (hot-reloading) 的 Vue 項目。這個模板使用 Webpack,一個能將多個模塊打包成最終應用的模塊打包工具

  在 Webpack 中,每個模塊被打包到 bundle 之前都由一個相應的 “loader” 來轉換,Vue 也提供 vue-loader 插件來執行 .vue 單文件組件 的轉換。這個 webpack-simple 模板已經為你準備好了所有的東西

  無論更鐘情Webpack或是Browserify,簡單的或更復雜的項目都可參考一些文檔模板。瀏覽github.com/vuejs-templates,找到需要的部分,然后參考 README 中的說明,使用 vue-cli 工具生成新的項目

  模板中使用 Webpack,一個模塊加載器加載多個模塊然后構建成最終應用

 

 

 

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()