1. 是什么
是一个 webpack 的 loader
2. 安装
方法两种:
- vue-cli 直接创建;
- 手动创建:
1、初始化webpack
2、安装vue
注意:每个 vue 包的新版本发布时,一个相应版本的 vue-template-compiler 也会随之发布。编译器的版本必须和基本的 vue 包保持同步,这样 vue-loader 就会生成兼容运行时的代码。这意味着你每次升级项目中的 vue 包时,也应该匹配升级 vue-template-compiler。
(1)、安装插件
yarn add vue
yarn add vue-loader vue-template-compiler -D
(2)配置webpack.config.js 文件
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
module: {
rules: [
// ... 其它规则
{
test: /\.vue$/,
loader: 'vue-loader'
}
]
},
plugins: [
// 请确保引入这个插件!
new VueLoaderPlugin()
]
}
(3)可以同时安装 babel-loader、 css-loader 等资源管理插件,保证对js,css,less等类型文件的处理。参考:
- css和js处理参考
- 选项参考
3. 预处理器的使用
(1)ts引入
babel 、typescript
yarn add babel-loader ts-loader typescript -D
// webpack.*.js 添加
resolve: {
extensions: ['.js', '.ts', '.tsx', '.vue'],
},
module: {
rules: [
{
test: /\.([jt])s(x?)$/,
use: [{
loader: 'babel-loader',
},
{
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
transpileOnly: true,
onlyCompileBundledFiles: true,
},
},
],
exclude: /node_modules/,
},
]}
(2)样式
less、css
yarn add css-loader less less-loader style-loader less-plugin-functions -D
module: {
rules: [{
test: /\.less|.css$/,
use: [
'vue-style-loader',
{
loader: 'style-loader',
},
{
loader: 'css-loader', // translates CSS into CommonJS
},
{
loader: 'less-loader', // compiles Less to CSS
options: {
// modifyVars, // chang
javascriptEnabled: true,
plugins: [
new LessFunction(),
],
},
},
],
}]
}
等等。。。见官网或者各个第三方的官网吧
4. Scoped CSS
1、规则:只作用本文件的样式,不包含内部封装的子组件,但是能作用子组件的根元素。
2、深度作用选择器(能够作用到子组件): >>>。
像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。
3、通过 v-html
创建的 DOM 内容不受 scoped 样式影响,但是你仍然可以通过深度作用选择器来为他们设置样式。
4、注意: 尽量不要作用标签样式;在递归组件中小心使用后代选择器!
5.热重载
组件的所有实例将在不刷新页面的情况下被替换
6. 函数式组件
。。。后面的见官网
3. 教程中出现的第三方框架插件
1、