Vue3 初探(三)全局API
Vue2时代的全局API全部都是挂载在Vue原型上的,所以任何对全局API的修改都会作用到所有的Vue实例。这可能是我们所不希望的,同时这种修改又是不可逆的。
所以为了应对这种情况,Vue3将全局API改造,引入了APP的概念,每个实例都是一个APP,全局API是作用在APP上的。
Vue2时代的全局API全部都是挂载在Vue原型上的,所以任何对全局API的修改都会作用到所有的Vue实例。这可能是我们所不希望的,同时这种修改又是不可逆的。
所以为了应对这种情况,Vue3将全局API改造,引入了APP的概念,每个实例都是一个APP,全局API是作用在APP上的。
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。
而子网也是通过路由器进行划分的一个个网络。
那二者的区别是什么呢?最本质上的区别就是,根据网络分层模型,VLAN主要用于划分数据链路层的广播域,而子网划分是通过IP地址在划分网络层,如果是用CIDR进行的子网划分,那么如果两个IP地址通过子网掩码计算出来的结果是相同的,那就是同一个子网。
Vue3发布也有一段时间了,虽然还在beta测试,但是有些特性也可以事先了解下,这次就先看一下最重要的几个特性之一的组合式API,一种类似React Hooks的东西。
如果你了解Vue2或者说看过我以前关于Vue2源码的分析,有一个结论我现在就可以抛出:
就是Vue3的组合式API本身并没有用什么本质上的新特性,还是响应式原理那一套东西,只不过是提供了一种新的语法可以让你将强相关的一些列的data,prop,compute,method,生命周期函数封装到一起,最后将需要暴露出去的data也好,compute也好通过一个对象return出去,剩下的就和vue2没什么区别,你可以直接使用this去调用或者使用。
文章主要内容来自于Vue3迁移指南-组合式API,中间会根据自己的思路重新整理并解释。
最近看了篇关于VPN原理的文章,发现它的连接建立过程与HTTPS有点相似,并且都是对通信进行了数据加密。
在这里记录下VPN的连接建立过程,想要比较与HTTPS的区别的可以看我的另外一篇博客:https://sunra.top/posts/‘51308784’/。
这周大部分时间都是在开发一个基于Electron的客户端。
Electron内置一个chrome内核,所以可以让我们像开发一个网站一样开发客户端。
在开发过程中,遇到了一个问题,就是我们的项目需要从本地加载AI的模型并进行计算。
看过我介绍浏览器结构那篇文章的应该知道,在当前chrome结构下,网络进程与渲染进程是完全分开的,所以加载模型并不会pend住渲染进程,所以就没有在意。
但是事实证明我的页面还是会存在卡顿。
于是我就用开发者工具的Performance面板录制了一下,结果发现是模型加载完后的识别函数,它是一个Promise,属于微任务,实际上是个协程,而且是个CPU密集型的协程。
最近在重新看cookie的配置的时候,发现了它的一个新的配置,叫做sameSite。
这个sameSite的中文翻译就是同站。
我们今天就来看一下这个同站是什么,它和同源有什么区别,为什么cookie明明都有domain和path来规定作用域了还需要sameSite这个属性。
前面几篇文章我们从调用栈和执行上下文角度讲清楚了作用域和闭包,同时讲了作用域和this的区别,现在JavaScript中最难理解的几个概念就只剩下一个原型链了。
如果我们看过《JavaScript高级程序设计》的话应该就对其中那个原型的章节有印象,它有一个非常复杂的图,通过这图来讲了JavaScript的_proto_,prototype,constructor之间的指向关系。
一开始读那本书对这一块我是似懂非懂的,终于借这次重新梳理的机会搞清楚了。
这篇博客的内容还是分为两部分:
_proto_,prototype,constructor的指向关系。