
Vue
Weybn
这个作者很懒,什么都没留下…
展开
-
学习Vue的SSR,这可能是最好的教程
为了追求更好的用户体验,很多公司的业务页面都会采用SSR进行渲染,将渲染的结果返回给浏览器,浏览器能够不经过实例化Vue,直接解析HTML代码展示,这样可以减少首屏时间,提高用户体验。0.Server Side Render使用0.1上手SSR Vue提供一个npm包叫做vue-server-renderer,它是在vue源码中的server目录中单独打包出来作为服务端渲染的依赖包,包的名称已经讲清楚了它的作用:作为一个服务端渲染器,将Vue实例中所有需要展示的内容进行渲染。 举一个很简单的服务原创 2020-06-27 16:28:43 · 2857 阅读 · 0 评论 -
解析Vue Router源码
Router的从初始化到触发更新时候的流程如果没有相应的Router源码阅读经历(如React Router的阅读经历),那么可能不需要通过了解整个流程就可以知道大致的实现方式,但是对于没有类似的经历的,那么很难做到窥一斑而知全豹。如果一开始就直接按点来进行讲解的话,那么很多时候都会很懵,因为不知道作用。所以在进行讲解之前,先看一下Vue Router的工作流程。初始化在项目初始化的时候,会先进行VueRouter的安装,只需要记住安装的时候会在Vue中混入了一个生命周期钩子函数,将根组件的_rout原创 2020-06-03 14:37:39 · 479 阅读 · 0 评论 -
从源码看Vue中模板的自定义事件、DOM事件的绑定过程
Vue中事件的基础1.Vue中如何绑定事件 Vue框架相比于React框架,提供了模板的功能,而模板与HTML代码极为相似,这使得我们可以花费很少的时间从原生到Vue框架的过渡,这是Vue的优点之一。不过模板到处理的时候只是一个字符串,而不是真正的HTML代码。所以如果我们以原生的方式来对节点进行监听的话,很可能会出错。这是因为有可能模板还没有渲染到页面上。不过,Vue推荐使用在模板上进行事...原创 2020-04-14 09:13:19 · 880 阅读 · 0 评论 -
Vue3.0代理如何对数组的原生方法进行观察
前言在本文章学习之前,你需要掌握的内容有:ProxyReflect1.ES6数组的原生方法有哪些?ES6数组的操作的原生方法有如下:Vue3.0相比于Vue2.0支持的观察的数组的原生方法更多,并且不需要通过写特定的方法来进行支持,对数组原生方法的观测可以合并到对数组下标、对象属性的响应代码里面。这是什么原理呢?这篇文章就来给你们揭秘!2.数组的代理对象一些有趣的现象首先,我...原创 2020-02-20 22:27:29 · 2955 阅读 · 0 评论 -
带你阅读Vue3.0响应式系统源码5-总结
1.整个响应式系统的架构1)整体的文件结构baseHandlers.ts // 基础型对象代理handlerscollectionHandlers.ts // 容器型对象代理handlerscomputed.ts // 计算选项处理,由于computed选项最后会处理成为一个响应式数据effect.ts // 影响因...原创 2020-02-20 22:25:27 · 327 阅读 · 0 评论 -
带你阅读Vue3.0响应式系统源码3-响应型数据诞生
主题:响应型数据诞生(不考虑ReadOnly响应数据)1.哪些类型的数据会被设置成响应型数据? Vue2.0中能够被设置成响应型数据的无非就两种:纯对象(说白了就是new Object()或者{}或者Object.create(null)等定义的键值对对象)、数组。而Vue3.0中能够被设置成响应型数据的多了容器型对象:// makeMap方法是将字符串用String.prototype....原创 2020-02-20 22:23:26 · 434 阅读 · 0 评论 -
带你阅读Vue3.0响应式系统源码2-对象及数据结构分析
主题:对象及数据结构分析1.全局实例对象1)存放所有对象依赖筐的实例对象(在effect.ts文件顶部) 存放所有对象依赖筐的实例对象只有一个,叫做targetMap,它是分成三层的树状数据结构,第一二层是Map数据类型,第三层是Set数据类型。它大体上是按照如下的结构进行组织的:在讲解上面数据结构之前,先说明清楚两点:在Vue的数据响应系统中,数据对象变成响应型数据和被观察的数是...原创 2020-02-20 22:22:37 · 523 阅读 · 0 评论 -
带你阅读Vue3.0响应式系统系列源码1
主题:绪论引言 首先笔者问自己,为什么要阅读一下你这个教程,网络上有很多教程,然而这个教程有什么亮点? 网络上是有不少Vue3.0、Vue2.0源码阅读的教程,我也有去看了一下,有的写得也很不错,但是他们有一个共同的点,就是逐行代码进行解释讲解。这样好不好?好,但是还是差了点东西:逐行代码进行讲解的话,阅读的人能够很清楚知道每一行代码的作用、每一个方法的作用。但是东西讲的越细致,就很难有...原创 2020-02-20 22:21:30 · 868 阅读 · 0 评论 -
Vue3.0响应数据对象的构建过程
1.数据与影响因子Effect互相绑定的存储结构(targetMap)构建代码/** * @description 追踪就是依赖的添加过程,相当于2.0的observer过程 * @param target 代理对象 * @param type 观察的类型,在开发环境中使用 * @param key 想要被观察的属性,也就是effect函数中访问的对象的属性 */functio...原创 2020-02-20 21:38:39 · 824 阅读 · 0 评论 -
帮你更好理解Vue3.0响应式系统(Reactivity)源码!
针对于现在存在的很多源码解析文章,以及个人之前的文章中,会存在以下问题:示例代码太多这可能是源码解析写作的通病吧。其实大多数人从vue和react这样框架的生命周期API就可以大致猜出内部流程是什么,示例代码太多反而会产生枯燥感,而且部分示例代码又长又臭,甚至不得不加上大段的注释,严重降低了阅读体验。解析流水账既然代码是给计算机看的流水账,那解析就不能再是给人看的流水账。对于源码解析来说...原创 2020-04-29 15:10:41 · 2086 阅读 · 0 评论 -
理清Vue响应式系统中的Watcher
理清Vue响应式系统中的Watcher一、什么是响应系统中的Watcher,它的作用是什么?响应系统中的Watcher即这个系统的观察者,它是响应系统中观察者模式的载体,当响应系统中的数据发生改变的时候,它能够知道并且执行相应的函数以达到某种业务逻辑的目的。打个比方,如果你是一个商家,要寄一批货分别给不同的客户,那么watcher就是一个个快递员,发出的动作就是数据发生改变。你只需要负责寄出去...原创 2020-01-19 00:18:58 · 1722 阅读 · 0 评论 -
从源码上来看,Vue对象的每个生命周期钩子前都干了什么?
从源码上来看,Vue对象的每个生命周期钩子前都干了什么?一、从官方文档查看的Vue的生命周期钩子上面的图片是从Vue的官网里面找到的,如果单从这张图去查看生命周期干了什么,我们只能知道:在beforeMount前会对给出的模板进行编译(仅仅是在用Vue.js打包的时候会进行编译,在用脚手架的时候,在打包过程中会把模板编译成为渲染函数,这样可以避免每次创建一个Vue对象的时候进行编译模板)...原创 2020-01-18 20:04:58 · 1028 阅读 · 0 评论 -
Vue源码之数据响应系统
Vue源码之数据响应系统响应系统的基本思路接下来就是数据响应的基本思路,我们先看一下下面的例子:在Vue对象中,我们可以使用$watch来观察一个字段,当这个字段的值发生变化的时候执行制定的观察者。如下:const ins = new Vue({ data: { a: 1 }})ins.$watch('a', () => { console.log('修改了...原创 2020-01-18 20:02:59 · 279 阅读 · 0 评论 -
ES6代理模式实现Vue数据响应系统
ES6代理模式实现Vue数据响应系统1.工具准备需要的环境如下:Node环境(babel)TypeScript需要的知识储备:《ES6标准入门》2.思路2.1总体结构 该实践的总体结构是以一个Watcher实现类为载体,模拟Vue的方式,将需要进行响应的数据(data)、渲染函数(render)、挂载的dom节点输入进来。然后对传参送进来的data的属性进行改变的时候,...原创 2020-01-18 19:59:51 · 433 阅读 · 0 评论 -
在TypeScript下,Vue项目如何写出更可维护性代码?
在TypeScript下,Vue项目如何写出更可维护性代码?一、目录文章目录在TypeScript下,Vue项目如何写出更可维护性代码?一、目录二、总体分析1.为什么要用TypeScript来构建我们的项目?2.为什么TypeScript它就更可维护了?3.在TypeScript下,Vue项目和在JavaScript下的Vue项目有什么不同?三、具体实现1.api层(接口调用层)2.store...原创 2019-12-13 16:10:17 · 1293 阅读 · 0 评论