国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue-cli實現多頁面多路由的示例代碼

2019-11-19 14:27:27
字體:
來源:轉載
供稿:網友

項目下載地址 vue-cli多頁面多路由項目示例 :vue+webpack+vue-router+vuex+mock+axios

Usage

This is a project template for vue-cli.

github上找到某大神的一個基于vue-cli模板的vueAdmin后臺管理的模板,根據項目需求改成一個多頁面多路由的vue項目。

PC端:后臺管理頁面,單獨的頁面入口,單獨的路由。

移動端:業務展示頁面,單獨的頁面入口,單獨的路由。

踩了無數的坑,終于是初見效果了,隨后繼續優化更新

Install

# install dependenciesnpm install# serve with hot reload at localhost:8088npm run dev# build for production with minificationnpm run build

使用Nginx服務器進行訪問,地址如下:

PC端 http://localhost/modules/index.html

移動APP http://localhost/modules/index.html

多頁面配置

vue2.0版本多頁面入口,是由webpack配置來完成的,我的項目文件結構如下

  webpack   |---build   |---config   |---dist    |---route 路由   |---src    |---api axios請求    |---assets 資源    |---common 公共js資源目錄    |---components組件    |---modules各個模塊     |---index  index模塊      |---views 組件      |---index.html      |---index.js      |---index.vue     |---phone    phone模塊      |---phone.html      |---phone.js      |---phone.vue      |---phone 組件

modules下為多個頁面入口,文件名稱保持一致,如:

modules |---index  |---index.html  |---index.js

.vue文件名稱任意。

原則上這些文件名稱都可以隨意定,但由于下面entry入口函數的限定,換成其他名字可以會找不到。如果想要起其他文件名,請相應修改getMultiEntry()函數。

until.js

until.js中添加getMultiEntry(),依賴 glob插件,需要提前下載好,until.js開始引入

//獲取多級的入口文件exports.getMultiEntry = function (globPath) { var entries = {},  basename, tmp, pathname; glob.sync(globPath).forEach(function (entry) {  basename = path.basename(entry, path.extname(entry));  tmp = entry.split('/').splice(-4); var pathsrc = tmp[0]+'/'+tmp[1]; if( tmp[0] == 'src' ){  pathsrc = tmp[1]; } //console.log(pathsrc)  pathname = pathsrc + '/' + basename; // 正確輸出js和html的路徑  entries[pathname] = entry;  //console.log(pathname+'-----------'+entry); }); return entries;}

~/build/webpack.base.conf.js

找到entry,添加多入口

entry:entries,

運行、編譯的時候每一個入口都會對應一個Chunk。 PS:終于明白這個chunk的含義了/(ㄒoㄒ)/~~

~/build/webpack.dev.conf.js

文末添加以下配置:

var pages = utils.getMultiEntry('./src/'+config.moduleName+'/**/*.html');for (var pathname in pages) { // 配置生成的html文件,定義路徑等 var conf = {  filename: pathname + '.html',  template: pages[pathname], // 模板路徑  chunks: [pathname, 'vendors', 'manifest'], // 每個html引用的js模塊  inject: true       // js插入位置 }; // 需要生成幾個html文件,就配置幾個HtmlWebpackPlugin對象 module.exports.plugins.push(new HtmlWebpackPlugin(conf));}

其中config.moduleName = 'modules'

~/build/webpack.prod.conf.js

  ...//構建生成多頁面的HtmlWebpackPlugin配置,主要是循環生成var pages = utils.getMultiEntry('./src/'+config.moduleName+'/**/*.html');for (var pathname in pages) { var conf = {  filename: pathname + '.html',  template: pages[pathname], // 模板路徑  chunks: ['vendor',pathname], // 每個html引用的js模塊  inject: true,       // js插入位置 hash:true }; webpackConfig.plugins.push(new HtmlWebpackPlugin(conf));}module.exports = webpackConfig

其中config.moduleName = 'modules'

至此,多頁面的配置已經完成。訪問地址為:
index : http://localhost:8088/modules/index.html
phone : http://localhost:8088/modules/phone.html

Browser Support

Modern browsers and Internet Explorer 10+.

snapshots

License

MIT

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于都县| 广平县| 乐清市| 敖汉旗| 丰宁| 汾西县| 寿光市| 花莲市| 泰安市| 浦东新区| 西乡县| 湄潭县| 遂宁市| 小金县| 什邡市| 鄱阳县| 佳木斯市| 新乡县| 乌拉特后旗| 宁陕县| 保康县| 九龙城区| 定陶县| 隆昌县| 当雄县| 松桃| 安宁市| 罗平县| 万安县| 定远县| 吴江市| 东辽县| 凤山市| 济南市| 固原市| 长兴县| 吉木萨尔县| 信阳市| 鄄城县| 宿州市| 三明市|