loader学习教程之功能介绍篇

Vue-loader 是什么?

vue-loader 是一个加载器,能把如下格式的 Vue 组件转化成JavaScript模块。

loader学习教程之功能介绍篇

vue-loader 提供了一些非常酷炫的特性:

ES2015默认可用;

在每个 Vue 组件内支持其他的 Webpack 加载器,如用于<style>的 SASS 和用于<template> 的 Jade。

把 <style> 和 <template> 内引用的静态资源作为模块依赖项对待,并用Webpack 加载器处理。

对每个组件模拟有作用域的CSS。

开发阶段支持组件的热加载。

简单来说,webpack 和 vue-loader 的组合为你创作Vue应用的一个更先进、更灵巧的极其强大的前端开发模式。

Webpack 是什么?

如果你熟悉 Webpack 那就跳过这部分吧,但对于那些新手们,请看下这个简单介绍吧:

Webpack 是一个模块打包工具。在开发中,它把一堆文件中每个都作为一个模块处理,找出它们间的依赖关系,并打包成待发布的静态资源。

loader学习教程之功能介绍篇

列举一个基本例子,设想我们有一堆的 CommonJS 的引用。它们是不能在浏览器直接运行,所以需要把它们 捆绑 成 <script> 标记内的单一文件。Webpack 就能按照 require() 调用的依赖关系为我们做到这点。

实际上,Webpack 能做的更多,通过 "loaders" 我们能让 Webpack 按照我们想要的任何方式打包输出。例如:

编译 ES2015、CoffeeScript 或 TypeScript 模块成 ES5 CommonJS 的模块;

编译之前,可以通过 linter 校验源代码。

编译 Jade 模板成 HTML 并内联 JavaScript 字符串。

编译 SASS 文件成 CSS,然后把生成的CSS插入到 <style> 标签内,然后再转译成 JavaScript 代码段。

处理在 HTML 或 CSS 文件中引用的图片文件,根据配置路径把它们移动到任意位置,根据 MD5 hash 命名。

如果你学会了Webpack,就会知道它有多么强大,它非常显著地改善你前端开发的效率。它主要的缺点是配置方式有点麻烦,但是有了我这份使用指南,那使用 Webpack + Vue + vue-loader 的时候,基本上就扫清了大多数障碍了。

Vue 组件规格

*.vue 文件是用户用 HTML-like 的语法编写的 Vue 组件。每个 *.vue 文件都包括三部分 <template>, <script> 和 <style>:

<template> <div>{{ msg }}</div> </template> <script> export default { data () { return { msg: 'Hello world!' } } } </script> <style> .example { color: red; } </style>

vue-loader 解析文件,提取每个语言块,让他们通过需要的其他 loaders ,最后组装起来,放回 CommonJS 的模块,此模块的 module.exports 就是个 Vue.js 组件对象。

vue-loader 默认用没有用语言编译器,想CSS 预编译和HTML模板编译语言等,如果想用这些功能,需要设置 lang 属性的来实现。例如,你可以在组件的样式中这样用 SASS :

<style lang="sass"> /* 编写 SASS! */ </style>

更多细节查看 [使用预编译器]。

语言块

<template>

默认语言:html 。

每个 *.vue 文件几乎都包含一个 <template> 块。

<template> 内的内容字符串会被提取出来,用来编译进 Vue 组件内的 template 选项。

<script>

默认语言:js(默认ES2015也会通过Babel支持)。

每个 *.vue 文件几乎都包含一个 <script> 块。

脚本就像在CommonJS的环境中一样被执行(就像通过WebPACK中捆绑一个正常的.js模块)。就是说你可以 require() 其他的依赖项。由于默认支持 ES2015 ,你也可以用 import 和 export 语法。

该脚本必须导出一个 Vue.js 组件选项对象,也支持导出一个用 Vue.extend() 创建的扩展构造函数,但首先是导出普通对象。

<style>

默认语言:css。

每个 *.vue 文件支持多个 <style> 标签。

默认,会通过 style-loader 把内容提取并加载到文档的 <head> 内的 <style> 标签内。这也是可以[通过配置 Webpack 使组件内所有样式提取到一个单一的CSS文件]。

Src Imports

如果你喜欢把你的 *.vue 组件拆分成多个文件,那么你可以用 src 属性导入外部文件,代码如下:

<template src="https://www.jb51.net/article/template.html"></template> <style src="https://www.jb51.net/article/style.css"></style> <script src="https://www.jb51.net/article/script.js"></script>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwdfs.html