下面我就為大家分享一篇vue-cli創建的項目,配置多頁面的實現方法,具有很好的參考價值,希望對大家有所幫助。
vue官方提供的命令列工具vue-cli,能夠快速建立單頁應用程式。預設一個頁面入口index.html,那麼,如果我們需要多頁面該如何配置,實際上也不複雜
假設要新建的頁面是rule,以下以rule為例
建立新的html頁面
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <title></title> </head> <body> <span style="color:#000000;"><p id="rule"></p></span> <!-- built files will be auto injected --> </body> </html>
#建立入口檔Rule.vue和rule.js,仿照App.vue和main. js
<template> <p id="rule"> <router-view></router-view> </p> </template> <script> export default { name: 'lottery', data() { return { } }, mounted: function() { this.$router.replace({ path:'/rule' }); }, } </script> <style lang="less"> body{ margin:0; padding:0; } </style>
rule.js
import Vue from 'vue' import Rule from './Rule.vue' import router from './router' import $ from 'jquery' //import vConsole from 'vconsole' import fastclick from 'fastclick' Vue.config.productionTip = false fastclick.attach(document.body) Vue.config.productionTip = false; /* eslint-disable no-new */ new Vue({ el: '#rule', router, template: '<Rule/>', components: { Rule }, })
修改config/index.js
build加入rule位址,即編譯後產生的rule.html的位址與名字
build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.php'), rule: path.resolve(__dirname, '../dist/rule.php'), …… }
#rule: path.resolve(__dirname, '../dist/rule.php')表示編譯後再dist檔下,rule.html編譯後檔名為rule.php
#修改build/webpack.base.conf.js
設定entry
#entry: { app: './src/main.js', rule: './src/rule.js' },##修改build/webpack.dev.conf .js
在plugins增加
new HtmlWebpackPlugin({ filename: 'rule.html', template: 'rule.html', inject: true, chunks:['rule'] }),修改build/webpack.prod.conf.js
#在plugins增加
new HtmlWebpackPlugin({ filename: config.build.rule, template: 'rule.html', inject: true, minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency', chunks: ['manifest','vendor','rule'] }),
#以上全部##當後台位址跳到你的新建的頁面後,由於現在設定的預設路由是公用的,可自行設定多個路由文件,分別引用。
可在Rule.vue中路由跳到指定路由,以實現頁面控制
#mounted: function() { this.$router.replace({ path:'/rule' }); },
上面是我整理給大家的,希望未來會對大家有幫助。
相關文章:
基於vue1和vue2取得dom元素的方法nodejs mongodb aggregate級聯查詢作業範例JS實作將連結產生二維碼並轉換為圖片的方法以上是vue-cli建立的專案,配置多頁面的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!