广告
返回顶部
首页 > 资讯 > 精选 >Vue loader的相关知识有哪些
  • 694
分享到

Vue loader的相关知识有哪些

2023-07-05 16:07:31 694人浏览 薄情痞子
摘要

本篇内容介绍了“Vue loader的相关知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、处理资源路径当 Vue Loader

本篇内容介绍了“Vue loader的相关知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    一、处理资源路径

    当 Vue Loader 编译单文件组件中的 <template> 块时,它也会将所有遇到的资源 URL 转换为 webpack 模块请求。

    例如:

    <img src="../image.png">

    将会被编译为一个 模块请求:

    createElement('img', {  attrs: {    src: require('../image.png') // 现在这是一个模块的请求了  }})

    默认下列标签/特性的组合会被转换,且这些组合时可以使用 transfORMAssetUrls 选项进行配置的。

    {  video: ['src', 'poster'],  source: 'src',  img: 'src',  image: ['xlink:href', 'href'],  use: ['xlink:href', 'href']}

    此外,如果你配置了为 <style> 块使用 CSS-loader,则你的 CSS 中的资源 URL 也会被同等处理

    转换规则 

    • 资源 URL 转换会遵循如下规则: 如果路径是绝对路径 (例如 /images/foo.png),会原样保留。

    • 如果路径以 . 开头,将会被看作相对的模块依赖,并按照你的本地文件系统上的目录结构进行解析。

    • 如果路径以 ~ 开头,其后的部分将会被看作模块依赖。这意味着你可以用该特性来引用一个 node 依赖中的资源

    • 如果路径以 @开头,也会被看作模块依赖。如果你的 WEBpack 配置中给 @ 配置了 alias,这就很有用了。所有 vue-cli创建的项目都默认配置了将 @ 指向 /src

    因为像 .png 这样的文件不是一个 javascript 模块,你需要配置 webpack 使用 file-loader 或者 url-loader 去合理地处理它们。通过 Vue CLI 创建的项目已经把这些预配置好了。

    为什么要转换资源URL(好处)

    • file-loader 可以指定要复制和放置资源文件的位置,以及如何使用版本哈希命名以获得更好的缓存。此外,这意味着 你可以就近管理图片文件,可以使用相对路径而不用担心部署时 URL 的问题。使用正确的配置,webpack 将会在打包输出中自动重写文件路径为正确的 URL。

    • url-loader 允许你有条件地将文件转换为内联的 base-64 URL (当文件小于给定的阈值),这会减少小文件的 Http 请求数。如果文件大于该阈值,会自动的交给 file-loader 处理。

    二、使用预处理器

    在 webpack 中,所有的预处理器需要匹配对应的 loader。Vue Loader 允许你使用其它 webpack loader 处理 Vue 组件的某一部分。

    它会根据 lang 特性以及你 webpack 配置中的规则自动推断出要使用的 loader。

    例如为了通过sass,less等来编译<style>,就配置相应的loader即可

    三、Scoped CSS

    <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

    这类似于 Shadow DOM 中的样式封装

    3.1 混用组件和全局样式

    可以在一个组件中同时使用有 scoped 和非 scoped 样式:

    <style></style><style scoped></style>

    3.2 子组件根元素

    使用 scoped 后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的 scoped CSS 和子组件的 scoped CSS 的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式

    通常为了避免组件之间样式的相互影响,最好用的办法就是在最外层添加一个不带class属性的div,这样就不必去找根元素的类名然后避免重名这一麻烦的步骤了

    3.3 深度作用选择器

    如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:

    <style scoped>.a >>> .b {  }</style>

    PS:有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之&mdash;&mdash;两者都是 >>> 的别名,同样可以正常工作

    注意:

    • Scoped 样式不能代替 class。考虑到浏览器渲染各种 CSS 选择器的方式,当 p { color: red } 是 scoped 时 (即与特性选择器组合使用时) 会慢很多倍。如果你使用 class 或者 id 取而代之,比如 .example {

    • color: red },性能影响就会消除。

    • 递归组件中小心使用后代选择器! 对选择器 .a .b 中的 CSS 规则来说,如果匹配 .a 的元素包含一个递归子组件,则所有的子组件中的 .b 都将被这个规则匹配

    四、热重载

    “热重载”不只是当你修改文件的时候简单重新加载页面。启用热重载后,当你修改 .vue

    文件时,该组件的所有实例将在不刷新页面的情况下被替换。它甚至保持了应用程序和被替换组件的当前状态!当你调整模版或者修改样式时,这极大地提高了开发体验。

    Vue loader的相关知识有哪些

    4.1 状态保留规则

    • 当编辑一个组件的 <template> 时,这个组件实例将就地重新渲染,并保留当前所有的私有状态。能够做到这一点是因为模板被编译成了新的无副作用的渲染函数

    • 当编辑一个组件的 <script> 时,这个组件实例将就地销毁并重新创建。(应用中其它组件的状态将会被保留) 是因为 <script> 可能包含带有副作用的生命周期钩子,所以将重新渲染替换为重新加载是必须的,这样做可以确保组件行为的一致性。这也意味着,如果你的组件带有全局副作用,则整个页面将会被重新加载

    • <style> 会通过 vue-style-loader 自行热重载,所以它不会影响应用的状态。

    用法之类的就不在这里这里了。

    五、函数式组件

    vue 提供了一种称为函数式组件的组件类型,用来定义那些没有响应数据,也不需要有任何生命周期的场景,它只接受一些props 来显示组件。

    要声明一个应该编译为函数式组件的模板,请将 functional 特性添加到模板块中。这样做以后就可以省略 <script> 块中的 functional 选项。

    “Vue loader的相关知识有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    --结束END--

    本文标题: Vue loader的相关知识有哪些

    本文链接: https://www.lsjlt.com/news/353134.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Vue loader的相关知识有哪些
      本篇内容介绍了“Vue loader的相关知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、处理资源路径当 Vue Loader ...
      99+
      2023-07-05
    • 解读Vue-loader的相关知识
      目录什么是Vue-loader一、处理资源路径转换规则 为什么要转换资源URL(好处)二、使用预处理器三、Scoped CSS3.1 混用组件和全局样式3.2 子组件根元素...
      99+
      2023-03-24
      Vue-loader相关知识 Vue-loader 解读Vue-loader
    • Hooks与vue的相关知识点有哪些
      这篇文章将为大家详细讲解有关Hooks与vue的相关知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Hooks是React在V16.7.0-alpha版本中引入...
      99+
      2022-10-19
    • 关于JavaScript相关知识有哪些
      这期内容当中小编将会给大家带来有关关于JavaScript相关知识有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  (一)JS中基本类型和引用类型  JavaScr...
      99+
      2022-10-19
    • HashMap相关知识点有哪些
      本篇内容介绍了“HashMap相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HashMap 和 HashSet 是 Java...
      99+
      2023-06-17
    • YARN相关知识点有哪些
      本篇内容介绍了“YARN相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!YARN产生背景为什么会产生YRAN?这个与MapRe...
      99+
      2023-06-19
    • Baseline相关知识点有哪些
      本篇内容主要讲解“Baseline相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Baseline相关知识点有哪些”吧! 在 Oracle Da...
      99+
      2022-10-19
    • CSS相关知识点有哪些
      本篇内容介绍了“CSS相关知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、CSS选择器 ...
      99+
      2022-10-19
    • Git相关知识点有哪些
      这篇文章主要讲解了“Git相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git相关知识点有哪些”吧!一、Git工作流程以上包括一些简单而常用...
      99+
      2022-10-19
    • MySQL相关知识点有哪些
      这篇文章主要介绍了MySQL相关知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 1、数据库架构1.1...
      99+
      2022-10-19
    • Spring Cache相关知识有哪些
      这篇文章将为大家详细讲解有关Spring Cache相关知识有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简介 Spring 从 3.1 开始定义了 org.springframework...
      99+
      2023-06-15
    • Java IO相关知识有哪些
      这篇文章主要介绍了Java IO相关知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、IO底层是怎么回事?操作系统就是管家,电脑的设备就是资源,如果进程先要操作资源...
      99+
      2023-06-15
    • KeyDB的相关知识点有哪些
      今天小编给大家分享一下KeyDB的相关知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。线程模型KeyDB将redi...
      99+
      2023-06-19
    • synchronized的相关知识点有哪些
      这篇文章主要讲解了“synchronized的相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“synchronized的相关知识点有哪些”吧!...
      99+
      2022-10-19
    • JVM相关的知识点有哪些
      这篇文章主要讲解了“JVM相关的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JVM相关的知识点有哪些”吧!JVM作为java运行的基础,很难相...
      99+
      2022-10-19
    • 有哪些Java的相关知识点
      这篇文章主要介绍“有哪些Java的相关知识点”,在日常操作中,相信很多人在有哪些Java的相关知识点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Java的相关知识点”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-16
    • React的相关知识点有哪些
      这篇文章主要介绍“React的相关知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React的相关知识点有哪些”文章能帮助大家解决问题。React与传统MVC的关系轻量级的视图层库!A J...
      99+
      2023-06-03
    • Git的相关知识点有哪些
      这篇文章主要介绍“Git的相关知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Git的相关知识点有哪些”文章能帮助大家解决问题。分支和合并Git 跟其他版本控制系统***的优势就在于其高级...
      99+
      2023-06-17
    • Python类的相关知识有哪些
      小编给大家分享一下Python类的相关知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、什么是类类(class),作为代码的父亲,可以说它包裹了很多有趣...
      99+
      2023-06-15
    • Vue生命周期的相关知识点有哪些
      这篇文章主要为大家展示了“Vue生命周期的相关知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue生命周期的相关知识点有哪些”这篇文章吧。1. 生命周期(重要)1.1 初步认识生命周...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作