vue 非es6 写法怎么按须加载_Vue源码必学指南:flow(语法检查)以及rollup(模板打包)...

40c54d9eccc2920f4408643f45e8a7ec.gif点击上方蓝色字关注我们~4fc6a63c196a8ff2e508dfa7ebc2fbc4.png

一、前言

1b0bf81cfc968c1bb20a6ff033f20ab7.png虽然 Vue3 已经公开了代码,但是Vue3.0还处于开发阶段,直接上手使用Typescript是不合适的 , 对于前端的老手是不错的选择, 但是如果没有研究源码经验的开发者还是建议使用完善, 成熟的源码进行入手. 而 Vue 2.x 中使用的 flow 是一个类型的校验工具, 可以简单的认为他是一个静态分析工具, 或编译检查工具. 而且非破坏式的引入, 完全可以作为我们一般开发任务的工具进行引入. 所以我们要简单介绍一下 flow 的使用, 一方面可以提升平时开发效率, 另一方面为了看明白 Vue 的源码也很有必要. 另外构建工具使用 Rollup, 因为 Vue 就是用的它, 简单明了, 比起 Webpack 没它强大, 但是够简单.1b0bf81cfc968c1bb20a6ff033f20ab7.png4e21825504a9fb70417a9db78b0a0a71.png4fc6a63c196a8ff2e508dfa7ebc2fbc4.png

二、flow与rollup的基本用法  

1b0bf81cfc968c1bb20a6ff033f20ab7.pngflow这里推荐一下flow的官方地址,如果本章节有不够完善的地方,可以去官方进行详细的学习。https://flow.org/flow本身只是一个静态的语法检查工具优势:1.足够简单,合适使用2.可以为已有的项目,进行优化3.为typescript做一个铺垫准备使用:用法:1.使用命令行工具a.编写代码,执行命令检查如果有问题则提示,没问题跳过(和传统编译型语言 非常相似)2.使用IDE插件(推荐)a.也和现在编译语言一样,我们在编写完代码之后,错误信息IDE工具会给你提示出来(所见即所得)安装的内容:1.flow-bin它就是flow的静态类型检查工具(主程序)2.编译器(compiler),例如flow-remove-types,将类型的语法结构删除掉,还原成纯js的文件。安装:1.全局安装npm install --g flow-bind  项目目录安装npm install -D flow-bind2.npm init -y(-y默认全部yes快捷创建)创建package.json文件,在文件中的scripts中添加:6d3b647ebcc238e9705f5dcfb6568395.png使用命令:npm run flow init在项目文件夹的根目录创建一个.flowconfig文件npm run flow check对所有文件夹进行类型检查npm run flow启动Flow服务(只检查变化部分)flow执行Flow检查npm run flow stop停止Flow服务在被检查的文件最顶部添加 @flow 标识的注释对该文件进行检查flow 命令行工具的用法首先需要安装软件:$ npm i flow-bin flow-remove-types编写代码:代码中添加 一个 注释 // @flow 或者 /* @flow */在运行 flow 之前, 使用 npx flow init 初始化检查代码:$ npx flow注意:npx 是 node 工具, 是为了使用项目文件夹下 node_modules 中的可执行程序的工具。flow-remove-types将代码转换为纯 js 的代码npx flow-remove-types 源文件 -d 生成的文件一般会将该命令配置 到 package.json 文件中使用 IDE 插件:推荐使用 flow language support 这个插件 ( VS Code 编辑器 )Vue 源码说明:.flowconfig 中module.name_mapper='^sfc/(.*)$' -> '/src/sfc/\1' 的含义是将 代码中 from 后面导入模块使用的路径 sfc/xxx/aa 映射到 项目根目录/src/sfc/xxx/aarollup的基本用法官方地址:https://www.rollupjs.com/Rollup是一个javascript模块打包器,可以将小块代码编译成大块复杂的代码,例如library或应用程序。Rollup对代码模块使用新的准备化格式(es6模块语法)注意:a.版本, 生成文件的版本b.使用模块化的语法是ES6语法( http://es6.ruanyifeng.com/#docs/module )使用:c.安装 ( 局部 安装 )d.rollup 源文件的路径 --file 生成文件的路径 --format umd --name 生成的库的名字 1b0bf81cfc968c1bb20a6ff033f20ab7.png4e21825504a9fb70417a9db78b0a0a71.png4fc6a63c196a8ff2e508dfa7ebc2fbc4.png

三、总结

1b0bf81cfc968c1bb20a6ff033f20ab7.pngwebpack诞生的时候,为了解决css、图片等静态文件的构建和使得代码能够按需加载实现了code-splitting,在我们日常线上业务代码开发中,或多或少有一些静态资源需要打包,此时rollup显得不太适用。所以我们可以看到,在构建一些lib的时候可以选择rollup,而在构建一些应用的时候,选择webpack.1b0bf81cfc968c1bb20a6ff033f20ab7.png4e21825504a9fb70417a9db78b0a0a71.png

往期回顾

程序员择业疑惑:前端要凉?学习Vue还有必要吗?

牢记!前端工作中遇到99%的工作,都不能靠跳槽解决

前端这道“常见又讨厌”的面试难题,要怎么答?

技术大佬都在用碎片时间学习Vue充电,你竟然还能坐得住?

前端年度跳槽技术要求:不懂Vue千万别轻举妄动!!

·END·

极光学苑

带你飞向梦想的地方

微信号:极光训练营

 谢谢你的“在看” ❤ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫画|创业到底有多难?

我有一群同事,我们一起经历了一个产品从无到有的过程,从开始的斗志满满到最后跟老板的不欢而散,其中的辛酸苦楚也许只能我们自己能体味,在这过程中,我们共同经历过的事情,有快乐的,悲伤的&#…

生成step文件_利用opencv给彦女王生成一副蒙太奇画像

大家好呀,前两天烈阳天道1上映了,不知道大家看没看呢,里面还有一小段彦穿越虫洞与猴哥相遇的画面,彦女王啊啊啊~~所以我去网上爬了二百来张我大学的风景画,然后找了以前存的彦女王的图片,生成了一幅蒙太奇画…

浪漫情人节|C语言画心型

1.前言新年第一天上班,先祝大家新年快乐,巧的是,今天刚好又是情人节,所以想了下用C实现画心形符号~过年的时候,跟我表哥去接新娘,实地看了下,如果一个汉字内心没有点浪漫的细胞,很难…

CS190.1x Scalable Machine Learning

这门课是CS100.1x的后续课,看课程名字就知道这门课主要讲机器学习。难度也会比上一门课大一点。如果你对这门课感兴趣,可以看看我这篇博客,如果对PySpark感兴趣,可以看我分析作业的博客。 Course Software Setup 这门课的环境配置…

./4.sh: No such file or directory

sh push到目标板后提示出错 #!/bin/bash echo "ladjfaosdjfoia"头bin/bash 我们要看,sh在哪里 130|rk3399_idpad:/data # which sh /system/bin/sh rk3399_idpad:/data # 所以上面的代码应该写成 #!/system/bin/sh echo "ladjfaosdjfoia"修…

Spring总结四:IOC和DI 注解方式

首先我们要了解注解和xml配置的区别: 作用一样,但是注解写在Bean的上方来代替我们之前在xml文件中所做的bean配置,也就是说我们使用了注解的方式,就不用再xml里面进行配置了,相对来说注解方式更为简便。 IOC获取对象注…

和后台如何对接_业务系统如何对接第三方服务?

在产品工作中,我们时常要对接第三方服务。本文作者从过往的对接项目经历中,提炼的关于业务系统,如何对接第三方服务的方法论,希望能对你有所帮助。随着公司业务的发展,我们有时会遇到,需要在自身业务系统中…

adb 启动某个apk

有时候需要用apk来启动某个apk adb shell am start -n com.android.launcher3/com.android.launcher3.Launcher 具体查看~ /rk3399_7in1/packages/apps/Launcher3/AndroidManifest.xml

Makefile 文件中的:obj-$(CONFIG_TEST) += test.o,这一类的是什么意思?

1、obj-$ $(CONFIG_TEST) 是一个整体,$(bbb)表示引用变量 bbb 比如定义 CONFIG_TESTy $(CONFIG_TEST) 就是 y obj-$(CONFIG_TEST) 就是 obj-y 又比如定义 CONFIG_TESTm $(CONFIG_TEST) 就是 m obj-$(CONFIG_TEST) 就是 obj-m obj-y foo.o 该例子告诉Kbuild在这目…

Kconfig中的“depends on”和“select”

在Kconfig文件中: config Adepends on Bselect C它的含义是:CONFIG_A配置与否,取决于CONFIG_B是否配置。一旦CONFIG_A配置了,CONFIG_C也自动配置了。 参考资料:“select” vs “depends” in kernel Kconfig。 所以去…

数组的合并和升序排列_leetcode 33 搜索旋转排序数组

给你一个升序排列的整数数组 nums ,和一个整数 target 。假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请你在数组中搜索 target ,如果数组中存在…

[LeetCode] [C++] 206 Reverse Linked List 反转单项链表

题目要求 Reverse a singly linked list.LeetCode 206在线测试 问题描述 给定一个单项链表,将其反转后返回链表头节点。 思路分析1 可以完整的遍历一遍链表,将链表的每个节点的值存在数组中,然后反向遍历数组重新生存一个新 链表。这样做需要…

qq面板(仿版,未完待续中。。。。)---2017-04-24

主要实现效果: 1、点击对话,显示对话;点击联系人,显示联系人 2、在联系人界面: 实现好友列表的展开与折叠;(图12) 实现鼠标移到好友列表上的背景颜色的变化;(…

苹果企业证书_苹果签名经常掉签原因大汇总

苹果签名就是数字签名,是基于非对称加密算法来实现的,对称加密就是通过非对称加密算法实现的,对称加密是通过同一份秘钥加密解密数据,非对称加密有两份秘钥,分别是公钥和私钥,用公钥进行加密的数据只能使用…

漫画|Linux 并发、竞态、互斥锁、自旋锁、信号量都是什么鬼?

1. 锁的由来?学习linux的时候,肯定会遇到各种和锁相关的知识,有时候自己学好了一点,感觉半桶水的自己已经可以华山论剑了,又突然冒出一个新的知识点,我看到新知识点的时候,有时间也是一脸的懵逼…

不废话~就是抽奖~

不废话就是抽奖 在公众号回复-抽奖- 获取抽奖二维码参与抽奖

威纶触摸屏与电脑连接_PLC与这7种设备的连接方式,一看就懂!

点击上方电工小青年,关注并星标专业的电工电气领域自媒体,不容错过欢迎转发朋友圈~PLC常见的输入设备有按钮、行程开关、接近开关、转换开关、拨码器、各种传感器等,输出设备有继电器、接触器、电磁阀等。正确地连接输入和输出电路&#xff0…

Android studio JNI jni实例

1.Jni的作用 1.Jni的作用 Java是一种比较高级的语言,Java调用c库,调用c库是必不可少的,所以Jni就应运而生了。看了这个文章的同学,应该能够自己写个APK装在自己的手机里面吧,以前刚开始做android的时候,写…

二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码

伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visit){if(!X) return; //到达叶子节点,开始回归visit(x->data);//向左子树深入的过程中便开始进行对每个节点的数据…

nedc工况_东南DX3 EV续航升级 NEDC综合工况续航451公里

东南DX3 EV续航升级版车型曝光,电池系统能量密度由之前的141Wh/kg提升至了161Wh/kg,NEDC综合工况续航也由老款产品的351km提升至了451km。近日,工信部公布了2019年第7批《新能源汽车推广应用推荐车型目录》,东南DX3 EV续航升级版车…