奇葩说框架之SFC编译原理

4bb0129179841bbec1b019a98555672c.png

1.从vue打包说起
vue打包版本说明

UMD CommonJS ES Module
Full vue.js vue.common.js vue.esm.js
Runtime-only vue.runtime.js vue.runtime.common.js vue.runtime.esm.js
Full (production) vue.min.js

Runtime-only (production) vue.runtime.min.js

vue源码编译文件从功能角度主要分为两个类型:Full 版本和 Runtime-only 版本。

Full 版本包括编译器和运行时代码,其中编译器是具有将模板字符串转换成为js render函数功能的代码,运行时是具有生成VUE实例、渲染插入虚拟DOM等功能的代码。

其中,Runtime-only版本相比于Full版本,体积减少了30% 。同时将编译时和运行时分开,也提高了性能。

因此Runtime-only版本是性能方面的首选。要使用Runtime-only版本,最佳实践就是通过单文件组件的方式开发,提前完成编译工作。

2.单文件组件

Vue中单文件组件(single-file components,SFC )为扩展名为 .vue 的文件,示例如下:

<template>
  <div>
    <p>{
   {msg}},world</p>
  </div>
</template>

<script>
export default {
  data(){
    return {
      msg: 'hello'
    }
  }
}
</script>

<style lang="scss" scoped>
p {
  color: red;
}
</style>

我们平常在项目中开发使用的一般都是这种单文件组件。一个单文件组件可以包含四个部分:template、script、styles、customBlocks。

那么一个SFC是如何变成可以在浏览器上执行的代码呢?这就涉及到对于单文件组件的编译问题了。

3.单文件组件的编译

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值