• 中美研究人员发现新型狗流感病毒 2019-05-29
  • 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 建立多页面vue.js项目

    介绍

    快乐彩开奖号码 www.752o.com 根据需求,我们希望建立一个多页面的vue.js项目,如何改造单页面vue.js项目为多页面项目?跟着我的步伐看下去吧.

    1.创建单页面vue.js项目

    简单的记录一下创建步骤:

    --安装cnpm
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    --安装vue-cli
    npm install -g vue-cli
    --安装webpack并新增目录
    vue init webpack sp-demo01
    --进入项目目录
    cd sp-demo01
    --更新
    npm install
    --运行
    npm run dev
    --构建
    npm run build
    

      

    2.配置路由映射

    在utils.js文件末尾添加如下代码,用于自动建立路由映射,如下图:

     

    // glob是webpack安装时依赖的一个第三方???,还??樵市砟闶褂?*等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件
    var glob = require('glob')
    // 页面模板
    var HtmlWebpackPlugin = require('html-webpack-plugin')
    // 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
    var PAGE_PATH = path.resolve(__dirname, '../src/pages')
    // 用于做相应的merge处理
    var merge = require('webpack-merge')
    
    // 多入口配置
    // 通过glob??槎寥ages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
    // 那么就作为入口处理
    exports.entries = function () {
      let startPath = 'src/pages/'
      // 应该读取js文件,但是这里限定js与html文件名一致,所以读取html文件
      var entryFiles = glob.sync(PAGE_PATH + '/**/*.html')
      var map = {}
      entryFiles.forEach((filePath) => {
        var dirPath = filePath.substring(0, filePath.lastIndexOf('/'))
        var dirName = dirPath.substring(dirPath.lastIndexOf('/') + 1)
        var filename = filePath.substring(filePath.lastIndexOf(startPath) + startPath.length, filePath.lastIndexOf('/'))
        if (filename.endsWith(dirName)) {
          map[filename] = filePath.substring(0, filePath.lastIndexOf('.html')) + '.js'
        }
      })
      console.log(map)
      return map
    }

     

    修改webpack.base.conf.js文件内容,在启动时调用映射方法,如下图:

     

     

    3.配置页面映射

    在utils.js文件末尾添加如下代码,用于自动建立页面映射,如下图:

     

    // 多页面输出配置
    // 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
    exports.htmlPlugin = function () {
      let entryHtml = glob.sync(PAGE_PATH + '/**/*.html')
      let startPath = 'src/pages/'
      let arr = []
      entryHtml.forEach((filePath) => {
        let filename = filePath.substring(filePath.lastIndexOf(startPath) + startPath.length, filePath.lastIndexOf('/'))
        let conf = {
          // 模板来源
          template: filePath,
          // 文件名称
          filename: filename + '.html',
          // 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本
          chunks: ['manifest', 'vendor', filename],
          inject: true
        }
        if (process.env.NODE_ENV === 'production') {
          conf = merge(conf, {
            minify: {
              removeComments: true,
              collapseWhitespace: true,
              removeAttributeQuotes: true
            },
            chunksSortMode: 'dependency'
          })
        }
        arr.push(new HtmlWebpackPlugin(conf))
      })
      console.log(arr)
      return arr
    }
    

     

    在启动时调用页面映射方法,如下图:

     

     

     

     

    4.注意 

    1.由于代码中的限制,如下图所示,test2.html与test2.js名称一致,test3.html与test3.js名称一致,所以每个页面的js与html文件必须一致。

    2.由于代码中的限制,如下图所示,所有页面必须在src/pages目录下。

    3.以上2个问题可自行修改步骤2与3中的代码进行自定义。

    5.完整结构,如下图:

     

    6.test3页面

     

     

     

     

     

     

     7.Test3与Test1运行效果

     

     

     

    posted @ 2019-04-22 17:22 吃西瓜的星星 阅读(...) 评论(...) 编辑 收藏
  • 中美研究人员发现新型狗流感病毒 2019-05-29
  • 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 12019期36选7开奖结果 球球大作战内购免费版 飞禽走兽干扰器多少钱 泳坛夺金走势 冮苏e球彩开奖结果 a梦工厂v 大航海时代4手游官网 北京pk10冠军走势图 cf刮刮乐活动在哪里 大乐透走势图新浪爱彩的老版本 皇室战争 战斗 2016北京赛车pk10规律 十三水群 127楚江风雪三肖中特 福建快3基本走势带坐标 御彩轩时时彩计划