赞
踩
由于vue为单页面项目,通过控制组件局部渲染,main.js是整个项目唯一的入口,整个项目都在一个index.html外壳中。
若项目过大,会造成单页面负载过重;同时,多页面利于模块独立部署。
如果项目中不同的页面需要不同的main.js和App.vue这样就需要配置多个入口了。
要单独将页面当成一个项目入口文件,以下以登陆页面为例:
public
index.html
login.html
// 仿照index.html
<div id="login"></div>
src
login
login.main.js
login.router.js
login.vue
// 仿照main.js
import Vue from 'vue';
import login from './login.vue';
import router from './login.router';
Vue.config.productionTip = false;
new Vue({
router,
render: h => h(login),
}).$mount('#login');
// 仿照router.js import Vue from 'vue'; import Router from 'vue-router'; Vue.use(Router); export default new Router({ routes: [ { path: "/", name: "login", component: () => import(../views/login.vue"), meta:{ title:"登陆" } }, ], });
// 仿照App.vue <template> <div id="login"> <router-view></router-view> </div> </template> <script> export default { data(){ return{ } } } </script> <style scoped> </style>
在module.exports里加上入口配置:
pages: {//配置多页面入口
login: {
entry: 'src/login/login.main.js',
template: 'public/login.html',
},
index: {
entry: 'src/main.js',
template: 'public/index.html',
},
},
npm run serve
这个就是单独的访问地址了
localhost:port/login.html
npm run build
root /usr/local/nginx/html;
location /login {
index login.html login.htm;
try_files $uri $uri/ /login.html;
}
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
这样就可以正常访问多个地址了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。