实现vue多页面开发

283 阅读1分钟

一般我们的vue项目都是单页面的,其实因为vue在工程化开发的时候依赖了webpack,webpack帮我们将所有的资源整合到一起而形成一个单页面。那么当我们要实现多页面的开发时就需要对webpack配置进行修改,本例主要是对webpack进行修改的介绍。

1.创建如下三个文件

src\pages\register\register.html

src\pages\register\register.js

src\pages\register\register.vue

步骤一

2.修改build\webpack.base.conf.js目录下,在module.exports中,找到entry,添加多个入口register.js

register:  './src/pages/register/register.js'

步骤二

3.对开发环境run dev里进行修改,打开\build\webpack.dev.conf.js文件,找到plugins,添加如下配置

 new HtmlWebpackPlugin({
        filename: 'register.html',
        template: 'src/pages/register/register.html',
        inject: true,
        chunks: ['register']
    })

步骤三

4.对run build也就是编译环境进行配置。

打开\config\index.js文件,在build里加入:

register: path.resolve(__dirname, '../dist/register.html')

步骤四

5.配置生产环境

打开/build/webpack.prod.conf.js文件,找到plugins,添加如下配置

		new HtmlWebpackPlugin({
			filename: config.build.register,
			template: './src/pages/register/register.html',
			inject: true,
			minify: {
				removeComments: true,
				collapseWhitespace: true,
				removeAttributeQuotes: true
			},
			chunksSortMode: 'dependency',
			chunks: ['manifest', 'vendor', 'register']
		})

filename引用的是\config\index.js里的build,每个页面都要配置一个chunks,不然会加载所有页面的资源。 template的url须为你register.html的路径。

步骤五

6.register.js文件可以这样写:

import Vue from 'vue'
import register from './register.vue'
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
el: '#register',
  render: h => h(register)
})

register.vue写法如下:

<template>
<div id="register">
    多页面开发之 页面一
</div>
</template>
<script>
export default { }
</script>
<style >
</style>

然后在App.vue里可以这样写:

<template>
  <div id="app">
    <a href="register.html">register</a>
    <router-view/>
  </div>
</template>

然后执行npm run dev查看效果 可以看到配置成功了

参考资料:百度经验