《Webpack5 核心原理与应用实践》学习笔记-> 搭建Vue环境

简介: 《Webpack5 核心原理与应用实践》学习笔记-> 搭建Vue环境


原课程中会讲单文件构建和服务端渲染,这里我将其拆成两个部分做笔记,这篇主要讲单文件构建。

使用vue-loader处理.vue文件


*.vue文件就是Vue SFC(Single File Component)文件,是使用类 HTML 语法描述 Vue 组件的自定义文件格式,和之前的的.css一样,webpack不能识别这种类型的文件,这个时候就需要借助vue-loader


  • 安装依赖:npm i -D vue vue-loader


课程中少写了vue项目的创建和使用,如果直接按照课程中的来大概率是不能成功的,所以这里根据我的理解直接多安装了一个vue


  • 根据我上一节的节奏来,直接在base.config.js文件中添加对vue的配置,如下
// base.config.js
// 引入 vue-loader,vue-loader 会自带一个 VueLoaderPlugin 
const { VueLoaderPlugin } = require("vue-loader");
module.exports = {
    module: {
        rules: [
            // 对于 .vue 文件使用 vue-loader 进行处理
            {
                test: /.vue$/,
                use: {
                    loader: 'vue-loader'
                }
            }
        ]
    },
    plugins: [
        // 这里还需要使用 VueLoaderPlugin
        new VueLoaderPlugin()
    ]
}


上面的配置默认是带有之前章节的配置信息的,上的配置都是新增的配置信息,之后不再赘述。


  • 新建一个App.vue文件,内容如下
<template>
  <div>
    <h1>{{ message }}</h1>
    <h1>{{ setupMessage }}</h1>
  </div>
</template>
<script>
// 这里没有使用 setup 语法糖
export default {
  // vue3是支持setup的
  setup() {
    return {
      setupMessage: 'hello setup'
    }
  },
  // 同时也支持 options api
  data() {
    return {
      message: 'hello Vue'
    }
  }
}
</script>
<style scoped>
h1 {
  color: orange;
}
</style>
  • 修改index.js的内容如下
import {createApp} from 'vue'
import App from './App.vue'
createApp(App).mount('#app')
  • 上一章讲html-webpack-plugin的时候,新建了一个index.html,现在里面的内容如下
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Webpack</title>
</head>
<body>
<div id="app"></div>
</body>
</html>


  • 现在可以运行npm run dev or npm run build查看效果啦。


至此一套vue的开发环境已经配置完成,本篇只讲了一个loader,就完成对一整套的vue开发环境的配置,这还是建立在之前学习的很多loader

现在使用之前的配置是可以在.vue文件中使用lesstypescript,感兴趣的可以亲自去尝试,就当扩展训练吧。


拓展


以上是直接使用webpack搭建的vue的一套开发环境,但是现在市面还是有开箱即用的方案,不需要额外的配置就可以轻松搭建一套vue的开发环境,最具代表的就是vue-clivite


  • vue-cli是官方指定的vue脚手架,提供一整套完整的配置,让你开箱即用。
  • vitevue的作者开发的一个打包工具,针对的场景不仅仅是vue,内部使用的是esModule,对于开发构建速度有很大的提升。


总结


今天没有官方总结,就自己总结了,使用webpack去创建一个vue的开发环境并不难,合理的使用好拼图(loaderplugin)就可以了。

vue-loader会将.vue文件进行转换。


  • <template>会转换成render函数。
  • <script>会转换成JavaScript字面量形式。
  • <style>会根据配置转换成对应的css,或在.js中,或单独存在.css文件中。


目录
相关文章
|
11天前
|
JavaScript 前端开发 开发者
响应式原理:Vue 如何跟踪数据变化
【4月更文挑战第22天】Vue 的响应式系统是其核心,通过数据双向绑定实现视图与数据同步。依赖收集和观测数据使Vue能跟踪变化,变化通知组件更新视图。高效的更新策略如批量更新和虚拟DOM提升性能。组件化和可组合性支持有效通信和代码复用,强调数据驱动开发。开发者应合理组织数据、谨慎处理变更并充分利用组件化优势,以提高效率和用户体验。
|
2月前
|
JavaScript API
Vue3的响应式原理
Vue 3 中的响应式原理是通过使用 ES6 的 `Proxy 对象`来实现的**。在 Vue 3 中,每个组件都有一个响应式代理对象,当组件中的数据发生变化时,代理对象会立即响应并更新视图。
|
3月前
|
缓存 JavaScript 前端开发
Vue学习笔记(六) 长乐未央
Vue学习笔记(六) 长乐未央
|
3月前
|
JavaScript 前端开发
Vue学习笔记(五) 长乐无极
Vue学习笔记(五) 长乐无极
|
3天前
|
JavaScript
Vue3中props的原理与使用
Vue3中props的原理与使用
|
9天前
|
JavaScript 前端开发 开发者
Vue的响应式原理:深入探索Vue的响应式系统与依赖追踪
【4月更文挑战第24天】Vue的响应式原理通过JavaScript getter/setter实现,当数据变化时自动更新视图。它创建Watcher对象收集依赖,并通过依赖追踪机制精确通知更新。当属性改变,setter触发更新相关Watcher,重新执行操作以反映数据最新状态。Vue的响应式系统结合依赖追踪,有效提高性能,简化复杂应用的开发,但对某些复杂数据结构需额外处理。
|
16天前
|
JavaScript 测试技术
vue不同环境打包环境变量处理
vue不同环境打包环境变量处理
30 0
|
25天前
|
JavaScript 前端开发 API
Vue中v-model的原理
Vue中v-model的原理
|
25天前
|
JavaScript 前端开发 API
vue中的ref/reactive区别及原理
vue中的ref/reactive区别及原理
19 0
|
29天前
|
JavaScript 前端开发 API
vue如何解决跨域?原理?
vue如何解决跨域?原理?