美文网首页前端开发
vue多页应用配置

vue多页应用配置

作者: 颂温暖 | 来源:发表于2019-06-14 14:27 被阅读50次

    vue脚手架创建的项目都是单页面应用
    但是有一些场景下我们需要使用多页面应用(比如一个系统的后端和前端要分为不同的页面应用,或者同一个服务器下的不用的项目)
    网上也找了一些资料,自己配置了下,目前来说是成功的
    配置如下:
    在vue.config.js中添加

    pages: {
        index: {
          // page 的入口
          entry: 'src/modules/mobile/main.js',
          // 模板来源就是在public里面创建的入口文件名
          template: 'public/index.html',
          // 编译后在 dist文件夹中的输出文件名,可选项,省略时默认与模块名一致
          filename: 'index.html',
          // 当使用 title 选项时,
          // template 中的 title 标签需要时 <title><%= htmlWebpackPlugin.options.title %></title>
          title: '项目标题',
          // 在这个页面中包含的块,默认情况下会包含
          // 提取出来的通用 chunk 和 vendor chunk。
          chunks: ['chunk-vendors', 'chunk-common', 'index']
        },
        // 当使用只有入口的字符串格式时,也就是只有entry属性时,直接用字符串表示模块入口
        elive: 'src/modules/elive/elive.js'
      }
    

    如有了解详细请去cli3官网配置文件里面查询

    项目目录是这样


    image.png

    而且项目中的public目录要新建这样多页面elive.html,图片和内容如下:


    image.png
    elive.html
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
        <title><%= htmlWebpackPlugin.options.title %></title>
    </head>
    <body>
    <div id="elive"></div>
    </body>
    </html>
    
    

    至于多页面中的elive入口文件配置代码和目录:

    elive.js
    
    import Vue from 'vue'
    import Elive from './Elive.vue'
    import router from './router'
    import store from './store'
    import http from '../elive/http/http'
    import VueAweSomeSwiper from 'vue-awesome-swiper'
    import 'swiper/dist/css/swiper.css'
    import VueLazyload from 'vue-lazyload'
    
    Vue.prototype.$http = http
    Vue.config.productionTip = false
    Vue.use(require('vue-wechat-title'))
    Vue.use(VueAweSomeSwiper)
    Vue.use(VueLazyload, {
      preLoad: 1.3,
      // error: 'dist/error.png',
      loading: require('./assets/img/load.gif'),
      attempt: 1
    })
    
    new Vue({
      router,
      store,
      render: h => h(Elive)
    }).$mount('#elive')
    
    
    image.png

    上图的mobile就是vue单页应用的配置,elive其实跟mobile配置一样,只是需要修改elive绑定的组件更换就好了,如下:

    main.js
    
    new Vue({
      router,
      store,
      render: h => h(App)
    }).$mount('#app')
    
    elive.js
    
    new Vue({
      router,
      store,
      render: h => h(Elive)
    }).$mount('#elive')
    

    最后对多页的标题做添加
    vue ui进行安装v-wechat-title依赖
    配置代码如下

    elive.js
    
    Vue.use(require('vue-wechat-title'))
    
    
    elive.vue
    
    <!-- 一直播 -->
    <template>
      <div id="elive" v-wechat-title="$route.meta.title">
        <router-view></router-view>
      </div>
    </template>
    
    <script>
    export default {
      name: 'elive',
      data () {
        return {
        }
      },
    
      created () {
        // 获取手机dpr分辨率
        // let a = window.devicePixelRatio
        // console.log(a)
        let idealViewWidth = window.screen.width
        const BASICVALUE = 375
        document.documentElement.style.fontSize = (idealViewWidth / BASICVALUE) * 100 + 'px'
      },
    
      mounted () {},
    
      components: {},
    
      computed: {},
    
      methods: {}
    }
    
    </script>
    <style lang='scss'>
    html, body{
      margin: 0px;
      padding: 0px;
    }
    ul li, ol li, li{
      list-style: none;
    }
    p {
      display: block;
      margin-block-start: 0em;
      margin-block-end: 0em;
      margin-inline-start: 0px;
      margin-inline-end: 0px;
    }
    </style>
    
    

    这样运行之后,想查看页面

    npm run serve
    进行访问
    localhost:8080是访问的mobile下面的项目,

    localhost:8080/elive.html#/是访问的elive下面的项目,

    至此,多页面项目配置成功

    不懂的,可以下面留言

    持续更新~~~~

    相关文章

      网友评论

        本文标题:vue多页应用配置

        本文链接:https://www.haomeiwen.com/subject/ggmufctx.html