欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解vue-cli + webpack 多頁面實例應用

 更新時間:2017年04月25日 15:09:10   作者:breezefeng  
本篇文章主要介紹了詳解vue-cli + webpack 多頁面實例應用,具有一定的參考價值,有興趣的可以了解一下

關于vue.js

vue.js是一套構建用戶界面的 輕型的漸進式前端框架。它的目標是通過盡可能簡單的 API 實現(xiàn)響應的數(shù)據(jù)綁定和組合的視圖組件。使用vue可以給你的開發(fā)帶來極致的編程體驗。

關于vue-cli

Vue-cli是vue官方提供的一個命令行工具(vue-cli),可用于快速搭建大型單頁應用。該工具提供開箱即用的構建工具配置,帶來現(xiàn)代化的前端開發(fā)流程。只需一分鐘即可啟動帶熱重載、保存時靜態(tài)檢查以及可用于生產(chǎn)環(huán)境的構建配置的項目。

疑問

vue-cli主要是用于構建單頁應用的腳手架,但是現(xiàn)實項目中,大部分項目都是多頁的,怎么樣可以很好的利用這一套官方配置呢?我在網(wǎng)上找了一下, 幾乎找不到vue多頁應用實例,所以才有基于vue-cli生成的單頁應用進行改造。

代碼地址:

Github:https://github.com/breezefeng/vue-cli-multipage

使用方法

# install dependencies
npm install

# serve with hot reload at localhost:8080/module/index.html
npm run dev

# build for production with minification
npm run build

目錄結構

vue-cli-multipage
 |---build
 |---config
 |---src
  |---assets
   |---img 圖片文件
   |---css 樣式文件
   |---font 字體文件   
  |---components 組件
   |---Button.vue 按鈕組件
   |---Hello.vue
  |---module
   |---index 首頁模塊
    |---index.html
    |---index.js
    |---App.vue
   |---detail 詳情頁模塊
    |---detail.html
    |---detail.js
    |---App.vue

從目錄結構上,各種組件、頁面模塊、資源等都按類新建了文件夾,方便我們儲存文件。

其實我們所有的文件,最主要都是放在module文件夾里,以文件夾名為html的名稱。

例如:

|---index 首頁模塊
 |---index.html
 |---index.js
 |---App.vue

此時我們訪問的鏈接是:http://localhost:8080/module/index.html

這里一定要注意,在module里下級文件夾里需要將html,js,vue template 都統(tǒng)一放在當前文件夾里,當然你也可以繼續(xù)放其他的資源,例如css、圖片、組件等,webpack會打包到當前頁面里。

如果項目不需要這個頁面了,可以把這個文件夾直接刪除掉,干凈利落,干活也開心。

像以前傳統(tǒng)的開發(fā)項目,所有的圖片都習慣放在images里,當項目有改動時,有些圖片等資源用不上了,但還占著坑位,導致項目越來越大,雖然現(xiàn)在的硬件容量大到驚人,但我們應該還是要養(yǎng)到一個良好的習慣。

組件的使用

組件(Component)是 vue.js 最強大的功能之一,當你發(fā)現(xiàn)使用組件可以減少造輪子里,你會深深的愛上它。

我們的組件都是放在components目錄下的,調(diào)用組件的方法也很簡單。

import Hello from 'components/Hello'

然后記得在*.vue注冊導入的組件,要不然會無法使用。

import Hello from 'components/Hello'

export default {
 name: 'app',
 components: {
  //在這里注冊組件,不然無法使用
  Hello
 }
}

構建代碼說明

那我們使用的是vue-cli的手腳架,用過vue-cli的同學都知道構建代碼是放在根目錄build下,vue多頁面主要修改了這三個JS文件:webpack.base.conf.js、webpack.dev.conf.js、webpack.prod.conf.js。

/**
**  [webpack.base.conf.js]這里主要列出相關代碼的修改點,具體代碼請看build/webpack.base.conf.js
*/
var entries = getEntry('./src/module/**/*.js'); // 獲得入口js文件

module.exports = {
 entry: entries,
 ....
}

function getEntry(globPath) {
 var entries = {},
  basename, tmp, pathname;

 glob.sync(globPath).forEach(function (entry) {
  basename = path.basename(entry, path.extname(entry));
  tmp = entry.split('/').splice(-3);
  pathname = tmp.splice(0, 1) + '/' + basename; // 正確輸出js和html的路徑
  entries[pathname] = entry;
 });

 return entries;
}
/**
**  [webpack.prod.conf.js]這里主要列出相關代碼的修改點,具體代碼請看build/webpack.base.prod.js
*/
function getEntry(globPath) {
 var entries = {},
  basename, tmp, pathname;

 glob.sync(globPath).forEach(function (entry) {
  basename = path.basename(entry, path.extname(entry));
  tmp = entry.split('/').splice(-3);
  pathname = tmp.splice(0, 1) + '/' + basename; // 正確輸出js和html的路徑
  entries[pathname] = entry;
 });
 return entries;
}

var pages = getEntry('./src/module/**/*.html');

for (var pathname in pages) {
 // 配置生成的html文件,定義路徑等
 var conf = {
  filename: pathname + '.html',
  template: pages[pathname],  // 模板路徑
  inject: true,       // js插入位置
  minify: {
   //removeComments: true,
   //collapseWhitespace: true,
   //removeAttributeQuotes: true
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency'
 };

 if (pathname in module.exports.entry) {
  conf.chunks = ['manifest', 'vendor', pathname];
  conf.hash = true;
 }

 module.exports.plugins.push(new HtmlWebpackPlugin(conf));
}

修改的代碼不是很多,但是卻為多頁應用提供了強大的構建支持。以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue3如何解決Element-plus不生效的問題

    Vue3如何解決Element-plus不生效的問題

    這篇文章主要介紹了Vue3如何解決Element-plus不生效的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue.js 2.0窺探之Virtual DOM到底是什么?

    Vue.js 2.0窺探之Virtual DOM到底是什么?

    大家可能聽說Vue.js 2.0已經(jīng)發(fā)布,并且在其中新添加如了一些新功能。其中一個功能就是“Virtual DOM”。那么下面這篇文章就來給大家詳細介紹Vue.js 2.0中的Virtual DOM到底是什么?需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Vue中使用jsencrypt進行RSA非對稱加密的操作方法

    Vue中使用jsencrypt進行RSA非對稱加密的操作方法

    這篇文章主要介紹了Vue中使用jsencrypt進行RSA非對稱加密,在這里需要注意要加密的數(shù)據(jù)必須是字符串,對Vue?RSA非對稱加密相關知識感興趣的朋友一起看看吧
    2022-04-04
  • 基于vue實現(xiàn)一個神奇的動態(tài)按鈕效果

    基于vue實現(xiàn)一個神奇的動態(tài)按鈕效果

    今天我們將利用vue的條件指令來完成一個簡易的動態(tài)變色功能按鈕,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-05-05
  • vue實現(xiàn)對highlight-current-row方式整行選中后修改默認背景顏色

    vue實現(xiàn)對highlight-current-row方式整行選中后修改默認背景顏色

    這篇文章主要介紹了vue實現(xiàn)對highlight-current-row方式整行選中后修改默認背景顏色方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vue如何利用flex布局實現(xiàn)TV端城市列表功能

    Vue如何利用flex布局實現(xiàn)TV端城市列表功能

    用vue開發(fā)了三四個組件了,都是H5的,現(xiàn)在來看看PC是如何玩轉組件的,下面這篇文章主要給大家介紹了關于Vue如何利用flex布局實現(xiàn)TV端城市列表功能的相關資料,需要的朋友可以參考下
    2023-01-01
  • vue之prop與$emit的用法說明

    vue之prop與$emit的用法說明

    這篇文章主要介紹了vue之prop與$emit的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 詳解vue-cli快速構建項目以及引入bootstrap、jq

    詳解vue-cli快速構建項目以及引入bootstrap、jq

    本篇文章主要介紹了vue-cli快速構建項目以及引入bootstrap、jq,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • VUE如何實現(xiàn)點擊文字添加顏色(動態(tài)修改class)

    VUE如何實現(xiàn)點擊文字添加顏色(動態(tài)修改class)

    這篇文章主要介紹了VUE如何實現(xiàn)點擊文字添加顏色(動態(tài)修改class),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue跳轉后不記錄歷史記錄的問題

    vue跳轉后不記錄歷史記錄的問題

    這篇文章主要介紹了vue跳轉后不記錄歷史記錄的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論