vue多页面程序配置
本文最后更新于:2021年2月25日 凌晨
最近做个vue的项目,突然想把项目中的登录页面隔离出来,配置成多页面程序,所以就搞了一下,步骤如下:
修改vue.config.js文件
因为我是用vue-cli4.x配的vue项目,所以默认是没有这个文件的。不过无伤大雅,我们直接在根目录新建一个就可以。
// vue.config.js
module.exports = {
pages: {
index: {
// page 的入口
entry: 'src/main.js',
// public里面创建的入口文件名
template: 'public/index.html',
// 编译后在 dist文件夹中的输出文件名,可选项,省略时默认与template名一致
filename: 'index.html',
// 当使用 title 选项时,
// template 中的 title 标签需要改成这样
// <title><%= htmlWebpackPlugin.options.title %></title>
title: '这是index标签',
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的 common chunks 和 vendor chunk。
chunks: ['chunk-vendors', 'chunk-common', 'index']
},
// 当使用只有入口的字符串格式时,也就是只有entry属性时,直接用字符串表示模块入口
login: {
entry: 'src/login/login.js',
template: 'public/login.html',
filename: 'login.html',
title: 'login标题'
}
}
}
新建模板
打开项目中的public文件夹,新建html文件,文件名字与vue.config.js中,login页面的template选项相同
按照index.html修改代码
// login.html
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<div id="login"></div> // 这里的id可以修改,后面会用到
</body>
</html>
新建入口文件
配置入口文件时,入口文件的文件路径需要和vue.config.js的路径一致
// login.js
import Vue from 'vue'
import login from './login.vue' //导入vue文件
Vue.config.productionTip = false
new Vue({
render: h => h(login),
}).$mount('#login') // 这里的#login就是刚刚login.html的id
完成
不过再使用的时候,有一些需要注意,虽然可以通过location.href(‘login’)直接访问这个页面,但是我强烈不建议这么做,因为你原来的页面如果有使用vue-router的children的话,href的更改会接着children的父路径,所以,我建议使用完整路径
location.href(`http://${location.host}/login`) // 不要忘记'http://',否则报错
// 或者
location.assign(`http://${location.host}/login`)
// 可以通过 '参数名?=' 传递数据
location.assign(`http://${location.host}/login?type=${e}`)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!