初识Vue Loader 笔记

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、