vue cli3同一个项目下的多页应用建立

0x00、页面效果:html

 

 表面看相似路由切换,其实是两个vue的实例,挂载在不一样的根节点上。vue

 

0x0一、整体目录结构:webpack

 

 

 

 项目分为三个模块,也就是三个多页应用,police、relatives、self。web

0x0二、以self为例,剖析self内部结构:vue-router

 

   1.self模块的入口index.js,至关于单页应用的main.js:ui

  

import Vue from 'vue'
import App from './index.vue'
import router from './router'
// import store from './store'

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#self')

这就是self模块的vue实例,该实例挂载在#self下。spa

  2.self模块的index.vue:code

<template>
  <div id="self">
    take care by self
    <router-view/>
  </div>
</template>

<script>
export default {

}
</script>

<style>

</style>

     self模块的页面挂载在#self下。  component

     3.router.js:router

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: '/',
            name: 'login',
            component: () => import('./login')
        }
    ]
})

self模块对应的路由,不详细解释。

0x0三、多页页面的配置:

const webpack = require('webpack')
module.exports = {
    pages: {
        takecarebypolice: {
            // 应用入口配置,至关于单页面应用的main.js,必需项
            entry: 'src/modules/TakecareByPolice/index.js',
            // 应用的模版,至关于单页面应用的public/index.html,可选项,省略时默认与模块名一致
            template: 'public/takecarebypolice.html',
        },
        takecarebyrelatives: {
            // 应用入口配置,至关于单页面应用的main.js,必需项
            entry: 'src/modules/TakecareByRelatives/index.js',
            // 应用的模版,至关于单页面应用的public/index.html,可选项,省略时默认与模块名一致
            template: 'public/takecarebyrelatives.html',
        },
        takecarebyself: {
            // 应用入口配置,至关于单页面应用的main.js,必需项
            entry: 'src/modules/TakecareBySelf/index.js',
            // 应用的模版,至关于单页面应用的public/index.html,可选项,省略时默认与模块名一致
            template: 'public/takecarebyself.html',
        },
    }
}

entry:指定了模块的入口

配置完成后,便可运行。

0x0四、打包后的效果:

 

ps:手动把原有的index.html这些删除了。

相关文章
相关标签/搜索