当前位置: 首页 > article >正文

一文大白话讲清楚webpack基本使用——4——vue-loader的配置和使用

一文大白话讲清楚webpack基本使用——4——vue-loader的配置和使用

1. 建议按文章顺序从头看是看

  • 第一篇:
  • 一文大白话讲清楚啥是个webpack
  • 第二篇:
  • 一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建
  • 第三篇
  • 一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用
  • 第四篇
  • 一文大白话讲清楚webpack基本使用——3——图像相关loader的配置和使用
  • 然后看本篇,vue-Loader的配置和使用

2. vue-loader的配置和使用

2.1 vue-loader的使用

  • 前端开发少不了使用vue框架,我们在src目录下新建目录vue,然后在vue目录下创建App.vue
    在这里插入图片描述

  • 当然先安装vue

nom install vue
  • 然后完善App.vue
<template>
    <di class="show">{{show}}</di>
</template>
<script setup>
    import {ref} from 'vue'
    const show=ref('I`m App.vue')
</script>
<style scoped>
    .show{
    font-size: 18px;
    color: green;
}
</style>
  • 在main.js引入app.vue,并挂载到dom实例
import {App} from './vue/App.vue'
import {createApp} from 'vue'
const app=createApp(App)
app.mount('#app')

在这里插入图片描述

  • 安装vue-loader
npm install vue-loader
  • 配置在webpack.config.js配置vue-loader
{
    test:/\.vue$/,
    loader:'vue-loader'
}

在这里插入图片描述

  • 因为vue-loader15.x版本以上需要使用VueLoaderPlugin来优化vue-loader的使用,所以我们还要配置一下vueLoaderPlugin插件
const VueLoaderPlugin=require('vue-loader')
new VuewLoaderPlugin()

在这里插入图片描述

  • 然后我们重新构建
npm run build
  • 然后浏览器执行index.html
    在这里插入图片描述

  • 此时vue文件已经被构建好了

2.2 vue-loader的原理

  • vue-loader的作用是将.vue文件转化为javascript
  • 怎么转化,我们看到一个vue组件里面有template,script和style三部分组成
  • 所以vue-loader就是通过将vue文件中的这三部分拆分三后分别处理
  1. 将vue文件拆分成template,script和style三部分
  2. 通过compile将template生成render、staticRenderFns
  3. 获取script部分返回的配置对象scriptExports
  4. 通过css-loader,vue-style-loader将style部分添加到head中去。或者通过css-loader和MiniCssExtractPlugin将style提取到一个公共的css文件中
  5. 最后通过normalizer方法返回完成的组件配置项options

http://www.kler.cn/a/512746.html

相关文章:

  • 迅为龙芯2K1000开发板/核心板流畅运行Busybox、Buildroot、Loognix、QT5.12系统
  • 在k8s中部署一个可外部访问的Redis Sentinel
  • 【C++】filesystem 详解
  • C# 以管理员方式启动程序全解析
  • mac m1下载maven安装并配置环境变量
  • 如何使用C++来实现OPENAI协议通过OLLAMA来与AI大模型通信
  • AI编程工具横向评测--Cloudstudio塑造完全态的jupyter notebook助力数据分析应用开发
  • Java基于SSM框架的社区团购系统小程序设计与实现(附源码,文档,部署)
  • xiaozhi-esp32 - 基于 ESP32 的 AI 聊天机器人
  • 2024年博客之星主题创作|Android 开发:前沿技术、跨领域融合与就业技能展望
  • 深入探索 Vue.js 的局部状态管理技术:基于 Pinia 的组合式 API 实现
  • Java程序运行剖析(JVM+JDK+JRE)(总结+超详解)
  • Python中字符串的基本操作
  • C#/.NET/.NET Core技术前沿周刊 | 第 22 期(2025年1.13-1.19)
  • Spring Boot拦截器:掌握Web请求的“守门员”
  • C++: Dtrees:load(constg String filepath, const String nodeName)中nodeName参数含义
  • “深入浅出”系列之C++:(15)simple_enum库
  • apache-zeppelin 命令执行 (CNVD-2019-33156)
  • Spring的循环依赖
  • ERROR:This version of pnpm requires at least Node.js vXXX 的解决方案
  • QT:子控件VLC播放视频时,父控件无法截取鼠标事件
  • 2025.1.16——五、LoveSQL1 sqlmap文件类|万能密码
  • Text2Sql:开启自然语言与数据库交互新时代(30/30)
  • Docker私有仓库管理工具Registry
  • 基于PHP的校园兼职系统的设计与开发
  • Flink(八):DataStream API (五) Join