zoukankan      html  css  js  c++  java
  • vue-cli创建的项目,配置多页面的实现方法

    vue官方提供的命令行工具vue-cli,能够快速搭建单页应用。默认一个页面入口index.html,那么,如果我们需要多页面该如何配置,实际上也不复杂

    假设要新建的页面是rule,以下以rule为例

    创建新的html页面

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width,initial-scale=1.0">
            <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
            <meta http-equiv="pragma" content="no-cache">
            <meta http-equiv="cache-control" content="no-cache">
            <meta http-equiv="expires" content="0">
            <title></title>
        </head>
        <body>
            <span style="color:#000000;"><div id="rule"></div></span>
            <!-- built files will be auto injected -->
        </body>
    </html>

    创建入口文件Rule.vue和rule.js,仿照App.vue和main.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <template>
        <div id="rule">
            <router-view></router-view>
        </div>
    </template>
    <script>
        export default {
            name: 'lottery',
            data() {
                return {
                }
            },
            mounted: function() {
                 
                this.$router.replace({
                        path:'/rule'
                });
            },
        }
    </script>
    <style lang="less">
        body{
            margin:0;
            padding:0;
        }
    </style>

    rule.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import Vue from 'vue'
    import Rule from './Rule.vue'
    import router from './router'
    import $ from 'jquery'
    //import vConsole from 'vconsole'
    import fastclick from 'fastclick'
    Vue.config.productionTip = false
    fastclick.attach(document.body)
    Vue.config.productionTip = false;
      
    /* eslint-disable no-new */
    new Vue({
     el: '#rule',
     router,
     template: '<Rule/>',
     components: { Rule },
    })

    修改config/index.js

    build添加rule地址,即编译后生成的rule.html的地址和名字

    1
    2
    3
    4
    5
    6
    build: {
      // Template for index.html
      index: path.resolve(__dirname, '../dist/index.php'),
      rule: path.resolve(__dirname, '../dist/rule.php'),
      ……
     }

    rule: path.resolve(__dirname, '../dist/rule.php')表示编译后再dist文件下,rule.html编译后文件名为rule.php

    修改build/webpack.base.conf.js

    配置entry

    1
    2
    3
    4
    entry: {
      app: './src/main.js', 
      rule: './src/rule.js'
     },

    修改build/webpack.dev.conf.js

    在plugins增加

    1
    2
    3
    4
    5
    6
    new HtmlWebpackPlugin({
       filename: 'rule.html',
       template: 'rule.html',
       inject: true,
       chunks:['rule']
      }),

    修改build/webpack.prod.conf.js

    在plugins增加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    new HtmlWebpackPlugin({
       filename: config.build.rule,
       template: 'rule.html',
       inject: true,
       minify: {
        removeComments: true,
        collapseWhitespace: true,
        removeAttributeQuotes: true
        // more options:
        // https://github.com/kangax/html-minifier#options-quick-reference
       },
       // necessary to consistently work with multiple chunks via CommonsChunkPlugin
       chunksSortMode: 'dependency',
       chunks: ['manifest','vendor','rule']
      }),

    以上全部

    当后台地址跳转到你的新建的页面后,由于现在配置的默认路由是公用的,可自己配置多个路由文件,分别引用。

    可在Rule.vue中路由跳转到指定路由,以实现页面控制

    1
    2
    3
    4
    5
    6
    mounted: function() {
                 
        this.$router.replace({
            path:'/rule'
        });
    },

    参考  https://www.jb51.net/article/136484.htm

  • 相关阅读:
    信息竞赛日志
    Lesson0423
    考试总结
    2020省队选拔前(4.13-5.31)计划
    mvcc浅析
    浅谈cgi和fastcgi
    mysql事务
    mysql慢sql优化总结
    简述缓存击穿 / 缓存雪崩 / 缓存穿透 以及各自的解决方案
    PHP的异常处理机制浅析
  • 原文地址:https://www.cnblogs.com/sea520/p/11747715.html
Copyright © 2011-2022 走看看