我了解到通过vue loader可以进行模板预编译,生成render函数,vue.js里的compiler也可以进行模板预编译。他们的区别是什么呢?我的理解是,默认使用vue loader预编译,配合vue.runtime.js这样打包后的文件体积小,或者使用vue.js里的compiler进行模板预编译,webpack不配置vue loader,这样打包后的文件体积大,因为包含compiler。可以这样理解吗?另外打包后的文件不是都是进行解析编译的嘛?文件只有css,js,html之类的原生文件,怎么在生命周期里初始化指令,数据,我觉得我这里理解肯定有错误,求帮忙指点!!!!
区别
webpack loader 主要是用来解析某种类型的文件的
webpack 在没有 loader 的情况下我们只能用下面的语法
引入某个模块,或引入某个js文件
import utl from 'lodash';
import xxx from 'xxx.js';
而配置了 vue-loader 之后,使得我们在引入 vue 文件的时候,可以帮我们解析 vue 文件成 js文件。
import Component from 'component.vue';
也就是说 loader 的作用是帮助 webpack 正确解析引入的文件,告诉webpack 要如何解析。
不然 webpack 并不清楚面对这样的文件的时候他需要干什么。
而 loader 本质上是一个只是一个函数而已,如果你需要也可以自己编写。
vue-compiler 只是 vue 提供的一个 将 template 转化成 render 函数的模块而已
这个模块可能在 vue-loader 中会被使用到,帮助 vue-loader 将 里面的 template 转化为 js代码。