基于vue cli重构多页面脚手架过程详解

下面我将为你详细讲解“基于vue-cli重构多页面脚手架过程详解”的完整攻略。

一、背景和意义

在日常开发中,使用多页面开发的情况比较常见,但是现有的脚手架不一定完全支持多页面开发。因此,我们需要对现有的多页面脚手架进行重构,以适应开发需求。本攻略就是基于Vue CLI对多页面脚手架进行重构的具体过程。

二、多页面脚手架原理

多页面脚手架就是将每个页面都单独打包成一个HTML文件的项目。这样可以避免不必要的代码冗余,并且可以方便快速地进行页面的增删改。

具体实现原理是通过html-webpack-plugin插件,在Webpack打包时向模板中注入生成的JS、CSS等文件,并输出HTML文件。

三、基于vue-cli搭建多页面脚手架

  1. 安装Vue CLI

首先,我们需要安装Vue CLI,用于创建Vue项目和管理依赖。具体命令如下:

npm install -g @vue/cli
  1. 创建Vue项目

创建Vue项目时,需要选择多页面模式。输入以下命令:

vue create my-project

在命令行交互界面中,选择 Manually select features,然后选择 BabelRouter,最后选择 Vue version 2.x

接着,根据提示选择 In dedicated config files,并选择 Yes

最后,选择 Pick a CSS pre-processor (LessSassStylus),并根据自己的喜好选择一种CSS预处理器即可。

  1. 配置页面入口

src 目录下新建一个 pages 文件夹,用于保存页面文件。每个页面都需要一个 .js.html 文件。以 index 页面为例,文件结构如下:

- src
    - pages
        - index
            - index.js
            - index.html

index.js 文件中写入以下代码:

import Vue from 'vue'
import App from './App.vue'

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

index.html 文件中写入以下代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Index Page</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

注意,在 index.html 文件中需要有一个 idapp 的 div 标签。

  1. 配置Webpack

在Vue CLI中,Webpack的配置文件隐藏在node_modules中,我们需要使用 vue.config.js 文件进行自定义配置。

在项目根目录下创建一个 vue.config.js 文件,写入以下代码:

const path = require('path')
const glob = require('glob')

function resolve (dir) {
  return path.join(__dirname, dir)
}

function getEntry () {
  const entry = {}
  glob.sync('./src/pages/**/index.js').forEach(path => {
    const chunk = path.split('./src/pages/')[1].split('/index.js')[0]
    entry[chunk] = path
  })
  return entry
}

const pages = getEntry()

module.exports = {
  pages,
  chainWebpack: config => {
    Object.keys(pages).forEach(entryName => {
      config.plugins.delete(`html-${entryName}`)
      config.plugins.delete(`preload-${entryName}`)
      config.plugins.delete(`prefetch-${entryName}`)

      config.entry(entryName).add(pages[entryName]).end()

      config.plugin(`html-${entryName}`).use(HtmlWebpackPlugin, [{
        title: entryName,
        filename: `${entryName}.html`,
        template: `./src/pages/${entryName}/index.html`,
        chunks: ['chunk-vendors', 'chunk-common', entryName]
      }])
    })
  },
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  }
}

以上代码的作用是:

  • 获取 src/pages 目录下所有的 index.js 入口文件;
  • 配置Webpack的 entry 和 output,每个页面对应的JS和HTML文件会生成在相应的目录下;
  • 配置 html-webpack-plugin 插件,自动生成HTML文件,并将生成的JS等文件自动注入HTML中。

  • 启动开发服务器

在命令行中输入以下命令启动开发服务器:

npm run serve

在浏览器中输入 http://localhost:8080/index.html 即可查看页面。

四、示例说明

这里提供两个示例,一个是简单的多页面脚手架,一个是基于ElementUI的多页面脚手架。

  1. 简单的多页面脚手架

代码示例:https://github.com/ruby215/vue-multiple-pages-starter

该示例基于Vue CLI 3.X重构了一个多页面脚手架,包括两个页面:首页和登录页。并且使用了Less作为CSS预处理器。

该示例的配置十分简单明了,容易上手。

  1. 基于ElementUI的多页面脚手架

代码示例:https://github.com/ruby215/element-ui-multiple-pages-starter

该示例基于Vue CLI 4.X重构了一个基于ElementUI的多页面脚手架,包括两个页面:首页和登录页。这里使用了ElementUI组件库,并使用了Sass作为CSS预处理器。

该示例的目录结构和上面的示例类似,但是在 vue.config.js 文件中需要添加ElementUI的按需加载代码,具体可以查看源码。

五、总结

以上就是基于Vue CLI重构多页面脚手架的全过程以及两个示例的介绍。多页面脚手架的使用可以更好地满足项目对于多页面的需求,并且可以提供更好的性能和体验。但是建议根据实际项目需求进行调整和优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于vue cli重构多页面脚手架过程详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue组件中prop属性使用说明实例代码详解

    Vue组件中的prop属性用于向组件传递数据,是组件通信的一种方式。在使用prop属性时,需要在组件实例的props选项中声明传递的属性及其类型。本篇攻略将详细讲解Vue组件中prop属性的使用说明,并提供实例代码作为示例。 1. 声明prop属性 在Vue组件中使用prop属性需要在组件的props选项中声明传递的属性及其类型。例如下面的代码是声明一个名为…

    Vue 2023年5月27日
    00
  • vue.js实现开关(switch)组件实例代码

    我很乐意为您提供“Vue.js实现开关(switch)组件实例代码”的攻略。具体步骤如下: 1. 组件的结构设计 在实现开关组件的过程中,需要考虑它的结构设计。对于一个简单的开关组件而言,我们可以考虑采用以下的HTML结构: <div class="switch"> <input id="toggle&quot…

    Vue 2023年5月28日
    00
  • Vue3 JSX解释器的实现

    下面是“Vue3 JSX解释器的实现”的完整攻略。 1. 了解JSX JSX是一种JavaScript的语法扩展,它可以在JavaScript代码中直接嵌入XML标签和属性,并使用类似HTML的语法格式。Vue3支持使用JSX语法来定义组件模板,其主要实现方式是通过JSX转换器将JSX语法转换为普通的JavaScript语法。在实现Vue3 JSX解释器之前…

    Vue 2023年5月27日
    00
  • 详解Vue 匿名、具名和作用域插槽的使用方法

    当我们在Vue中使用插槽时,通常会使用匿名、具名或作用域插槽。在本文中,我们将详细讲解这些插槽的用法,并提供一些示例帮助读者更好地理解。 1. 匿名插槽 目的 匿名插槽的目的是在父组件中,向子组件传递HTML内容。父组件的HTML内容会被子组件所默认接受,并且可以通过插槽名称进行调用。 使用方法 在父组件中,使用<slot>标签来占位子组件的位置…

    Vue 2023年5月28日
    00
  • Vue 组件(component)教程之实现精美的日历方法示例

    针对“Vue 组件(component)教程之实现精美的日历方法示例”,我可以介绍它的完整攻略,包括以下几部分内容: 理解 Vue 组件 在进入日历组件的实现前,首先需要理解什么是 Vue 组件。Vue 组件是 Vue.js 中的基本概念,它可以把一个页面拆分成若干独立、可重用的模块,并将这些模块进行拼装组合成为一个完整的页面。因此,理解 Vue 组件的分类…

    Vue 2023年5月28日
    00
  • Vue实现开始时间和结束时间范围查询

    我们来详细讲解一下如何使用Vue实现开始时间和结束时间范围查询。 1. 添加日期选择组件 首先,我们需要在Vue应用中添加日期选择组件,可以使用Vue的第三方组件库,比如Element UI中提供的DatePicker组件。 <template> <div> <el-date-picker v-model="start…

    Vue 2023年5月28日
    00
  • vue 动态创建组件的两种方法

    下面是关于“Vue 动态创建组件的两种方法”的完整攻略。 什么是动态创建组件 Vue 是组件化的一个框架,开发者可以将页面分割为不同的组件,然后方便组合和复用。在 Vue 中,我们可以使用普通方式来定义组件,也可以动态的创建组件。 动态创建组件指的是在 Vue 的运行时期,通过代码的方式来生成需要的组件,而不是在模板中直接放置组件。与静态创建的组件相比,动态…

    Vue 2023年5月28日
    00
  • 一定要知道的 25 个 Vue 技巧

    一定要知道的 25 个 Vue 技巧攻略 Vue.js 是一个轻量级的 JavaScript 框架,其强大的数据绑定和组件化设计使得它成为了在前端开发中最热门的框架之一。在本文中,我将会向你介绍一些常用的 Vue 技巧,以帮助你更好的利用 Vue 的能力。 技巧 1:使用 v-cloak 防止 FOUC FOUC (Flash of Unstyled Con…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部