笔记中的笔记,聊聊尤大在vue3.0 beta直播里说了什么

Vue3.0来了,一起来看看尤大大说了啥 说在前面 前端的技术一直更新特别快,特别是框架这块。4月21晚,Vue作者尤雨溪在B站直播分享了Vue.js 3.0 Beta最新进展。赶紧拿出小本本做笔记,一起来看看尤大大说了些什么。 Performance 当我们项目功能越来越多、模块规模一步步扩大,这个时候性能考量是非常重要的,那么Vue.js 3.0 Beta在性能上给我们带来了哪些惊喜呢? 重写了虚拟Dom的实现(且保证了兼容性,脱离模版的渲染需求旺盛)。 编译模板的优化。 更高效的组件初始化。 update性能提高. 阅读详情

在vue3.0 beta直播过后一天,掘金就有了别人家的笔记,确实笔记做的很好,但是我想在这份笔记上,加上我看直播时的一些感受,去做自己的笔记
(我还是推崇多做自己的笔记,而不是单单只看别人的笔记,写笔记会让自己对知识点更加深刻,即使会花比较多的时间,但一些知识做笔记是很有必要的)

因为直播过后那两天有事,所以今天才把这份笔记整理出来

事实上一个月前我才重新看了去年和前年的vue conf并整理了笔记,这一次的直播也提到了之前提到的一些东西,所以可以先看我之前的笔记,或者去看之前的vue conf再来看这次的直播笔记

直播现在我看已经有录播了,不喜欢看文章的同学可以跳转至https://www.bilibili.com/video/BV1Tg4y1z7FH

那么就开始吧

全新文档RFC

RFC全称request for comment,也就是请求评论
我们可以在github仓库上去查看vue3.0的设计细节,rfc传送门
在这里插入图片描述
当前beta的主要关注点是稳定性和第三方工具,库的支持

亮点

在这里插入图片描述

  • performance:性能的优化,这个在之前的两次vue conf上其实就说到了很多
  • Tree-shaking support:vue的API都支持Tree-shaking,这个在之前的笔记中提到过,在Vue3.0中,采取了ES module imports按需引入的方式,通过这种方式,如果某些API我们不使用的话,最终不会被打包到我们的项目中
  • Composition API:组合API,RFC里面是这么写的

    a set of additive, function-based APIs that allow flexible composition of component logic.
    (翻译:一组附加的、基于函数的API,允许组件逻辑的灵活组合。)

  • Fragment,Teleport,Suspense:新的内置原生功能
  • Better TypeScript support:更强的ts的支持,这个也在之前多次提到过了
  • Custom Render API:第一方暴露的自定义渲染API

一、performance

在这里插入图片描述

  • Rewritten virtual dom implenmentation
    重写了Virtual DOM的实现,让Virtual更快
    之所以保留了Virtual DOM,主要是为了兼容性的考虑,在Vue2.x中有的用户会去手写render函数,甚至会使用JSX,且Virtual DOM提供了一种模板之外的逻辑表达能力
    (事实上我平时一直都是使用模板语法的,但是在react中采用JSX后,个人看法会觉得通过js来做一些逻辑表达,有时会更加灵活)
    尤大也提到这样可以让一些库的作者去脱离模板,去实现相对复杂的渲染逻辑(私以为就是保留了一个灵活性)
    而对于Virtual DOM的变快,实际上在之前的笔记提到了,VIrtual DOM本身在每次更新时,都会进行一次比对渲染,变快就是通过在更新时对模板进行一个分析,只比对其中会变换的部分,生成更加优化的Virtual DOM Render函数,以此来加快Virtual DOM
  • Compiler-informed fast paths:编译模板的优化,也就是刚才说的,VIrtual DOM变快的原因
  • More efficient component initialization:组件初始化更高效
  • 1.3~2x better update performance:1.3到2倍的update性能提升
  • 2~3x faster SSR:服务器渲染也进行了重写,提高了2到3倍的速度

上面的速度提升是基于一个benchmarks可以说是标准检查程序来测试的,所以与实际项目中还有出入

我们可以到这个地址https://vue-next-template-explorer.netlify.app/,看看模板对应会生成什么代码,帮助我们更好地理解
在这里插入图片描述
那么,我们来根据这个谈谈之前说到的一些vue的更新
下面我要举的一些例子,有的和直播一样,有的是我自己去尝试的,理解可能参杂了我个人的观点,如果有什么地方是理解有误,欢迎大家指出

对模板分析diff时跳过静态节点

之前我们提到了,在vue3.0里面,我们对模板编译的时候进行了分析,使得在组件更新时只去diff会更改的部分,这在生成的代码里面就可以看出来了

我们写入下面的模板语法

<div>
  <span>static</span>
  <span>
    {{msg}}
  </span>
</div>

在这里插入图片描述

我们可以看到红色方框里面的东西,vue在编译的时候,通过分析,通过给创建节点的方法_createVNode传入的第三个参数,来标示出对这个节点,需要比对什么内容,而这里可以看到,对于一个没有使用data中数据的<span>static</span>,在调用方法时传入了一个字符串,表示了这是一个静态内容,而对于使用了data中数据的<span>{{msg}}</span>,则调用了一个方法_toDisplayString,然后在第四个参数,我们可以称为PatchFlag(从GitHub上源文件看到的),传入1标志对于这个节点,只需要比对text即文本即可

我们可以尝试去添加class,id,等来尝试这个表示会变成什么
在这里插入图片描述
在绑定了class后,PatchFlag变为3,我也做过一些尝试了,文本的话会加1,class会加2,如果有其他的属性,则加8,如下面加了id
在这里插入图片描述
除了标志的变化外,加入class(这里我的尝试只知道class)外的其他属性,加添加的时候都会使标志加8(只要出现一个就加8,不会重复添加),然后会在第5个参数传入一个数组,标示哪些属性需要被diff比较,如果我们没有对属性做任何绑定,那么该标志就不会增加,如下
在这里插入图片描述
编译器将class和id视为静态的,那么在更新时就不会去对其进行一个diff
这种编译方式,看似增加了工作(对动态节点的判断以及传入一些相应的会改变的属性),但是在运行时,特别是项目比较大的时候,会有比较大的提升
比如我们看下面的这段内容
在这里插入图片描述
在这一段模板当中,包含了很多的静态节点,在默认的diff算法中,我们需要对这些节点,进行一个diff的比对,这样在大的项目中就会造成runtime运行时的增加,而实际上,这也是Virtual DOM diff算法中最耗时的部分

vue的编译器以这种方式,让我们的runtime即运行时得到有效的减少

对于PatchFlag,有下面这些情况

export const PatchFlagNames = {
  [PatchFlags.TEXT]: `TEXT`, // 1 带有动态textcontent的元素
  [PatchFlags.CLASS]: `CLASS`, // 1<<1 即2 带有动态class的元素
  [PatchFlags.STYLE]: `STYLE`, // 1<<2 即4 带有动态style样式的元素
  [PatchFlags.PROPS]: `PROPS`, // 1<<3 即8 其他属性 表示具有非类/样式动态道具的元素
  [PatchFlags.FULL_PROPS]: `FULL_PROPS`, // 1<<4 即16 表示带有动态键的道具的元素,与上面三种相斥
  [PatchFlags.HYDRATE_EVENTS]: `HYDRATE_EVENTS`, // 1<<5 即32 表示带有事件监听器的元素
  [PatchFlags.STABLE_FRAGMENT]: `STABLE_FRAGMENT`, // 1<<6 即64 表示其子顺序不变的片段
  [PatchFlags.KEYED_FRAGMENT]: `KEYED_FRAGMENT`, // 1<<7 即128 表示带有键控或部分键控子代的片段
  [PatchFlags.UNKEYED_FRAGMENT]: `UNKEYED_FRAGMENT`, // 1<<8 即256 表示带有未加密子级的片段
  [PatchFlags.NEED_PATCH]: `NEED_PATCH`, // 1<<9 即512 表示只需要非属性补丁的元素,例如ref
  [PatchFlags.DYNAMIC_SLOTS]: `DYNAMIC_SLOTS`, // 1<<10 即1024 表示具有动态插槽的组件
  [PatchFlags.HOISTED]: `HOISTED`, // -1 表示悬挂的静态vnode,即永远不用更新
  [PatchFlags.BAIL]: `BAIL` // -2 一个特殊的标志,指代差异算法
}

我们可以在github上找到对应的ts代码
通过上面的数值我们也可以明显看到,这是通过位运算来标识元素中有哪些动态的内容

如果我们勾选右上角options里面的hoistStatic可以更清晰地看到静态节点被提升到渲染函数的外部
在这里插入图片描述
勾选之后,看看这段模板对应的代码
在这里插入图片描述
可以看到,静态的内容被我们提升到了渲染函数外,而在渲染的时候,我们将这些静态的内容传入,这就使得我们只需要在第一次创建的时候去生成这些节点,在后面更新的时候只需去传入这些节点,这样做让我们不用重复创建节点,同时也能做到更好的diff,使性能得到提高。同时,因为只需创建一次,不需要我们在运行更新时先创建新的再销毁旧的,使得内存也得到了优化。

事件监听缓存 cacheHandles

vue3.0提供了cacheHandles这个功能,我们先看看,如果我们不启用这个功能,模板会编译成什么样子
在这里插入图片描述
我们可以看到,onClick被视为一个动态的属性绑定,这是因为我们无法确定这个onclick是否存在于data上面,如果它存在于data上面,那么它可能会发生一个更改,这就导致了我们需要在进行diff算法时对它进行一个比对
而当我们启用了cacheHandles后
在这里插入图片描述
可以看到,模板编译成的代码变成了下图这样
在这里插入图片描述
这里我们对这个onclick进行了一个缓存处理,当第一次我们渲染这个节点的时候,因为不存在_cache[1],所以vue会自动生成一个内联函数,给_cache[1]赋值_cache[1] = $event => (_ctx.onclick($event)),使我们能自动去调用组件上最新的onclick,这样,在后续的更新中,我们只需要从缓存_cache[1]中去读取同一个函数,而既然是同一个函数,那也没有被更新的必要了,所以这个@click会被看为是静态的。
此外,在@click中我们是可以写入一个内联函数的,vue3.0会通过静态分析,如果@click的值是可以被缓存的,就会做一个缓存,如下面这段带有内联函数的模板
在这里插入图片描述
这种优化在要给组件传入一个函数时尤为明显,如果不使用事件监听缓存的话,那么在父组件更新的时候,子组件就会跟着更新,而通过事件监听缓存机制,我们传给子组件的函数,它会在调用时动态地去找到组件中最新的那个函数,就比如上面的例子中,我们会去调用到组件中最新的click方法,不需要对子组件进行一个更新

实际上在React中,useMemo就有类似的功能,React文档中的useMemo是这么写的

把“创建”函数和依赖项数组作为参数传入 useMemo,它仅会在某个依赖项改变时才重新计算 memoized 值。这种优化有助于避免在每次渲染时都进行高开销的计算。

SSR渲染优化

在这里插入图片描述
在进行SSR渲染时,会在服务端尽可能地将静态部分处理为字符串返回
在这里插入图片描述
可以看到,左边的html直接变为字符串推入,而如果存在有动态节点,也会尽可能地将动态节点放在字符串里面
在这里插入图片描述
可以看到,这里的id是动态绑定的,msg内容也是动态的textContent,而这里编译成代码时,使用了模板字符串,最终还是以一个字符串的内容推入

针对过深的静态节点采用innerHtml插入字符串

即使不使用SSR,在客户端方面,如果我们的静态节点嵌套地足够深的话,那么对于这段静态节点内容,就会使用_createStaticVNode去直接将一段字符串插入
在这里插入图片描述
这里要注意的是,是嵌套的层数多的时候会引起这种编译方式的改变,静态节点多并不会引起这种改变
在这里插入图片描述
我这里写了100个静态节点,但仍然没改变编译方式
而一旦嵌套的节点里面有一个动态节点,那么不会和SSR一样仍然使用字符串,而是会变回原来的编译方式
在这里插入图片描述
但即便如此,对于嵌套深的节点来说,比起我们对每个节点一个个append,使用innerHTM的方式让我们又得到了性能上的提升

展示的优化数据

在这里插入图片描述

二、Tree-shaking

在这里插入图片描述

  • 使更多可选的内容可以被tree-shaking,比如v-model和<transition>现在就可以被tree-shaking了,没有用到的时候,打包就不会被放入项目中
  • 模板中只包含一个简单的Hello World时,框架为项目带来的大小只增加了13.5kb
    • 如果采用了Composition API支持替代其他options的API的话,会变成11.75kb大小,在vue3.0中为了兼容之前版本,默认不会把options的API去掉,但是会有开关提供把这些API去掉的选项
      (options API存在的问题在于,我们无法去判断这个API有没有用到,因为无法去对js进行一个分析)
  • 即便是vue3.0的东西都放进去,也只有22.5kb(包括所有的新功能)
    • 这个大小比vue2.x小,但功能却更多

我们知道,webpack等一些打包工具,本身是具备tree-shaking能力的
(tree-shaking可以理解为在打包的时候,将一些无用的内容去掉,不添加到打包好的文件里,使项目体积变小)
但是要使用tree-shaking,前提是我们使用ES module来进行引入,在vue3.0里面,有更多的内容需要当我们使用import的时候,才会被打包进项目里,比如上面ppt里的v-model和transition
我们可以看看,当我们不使用任何东西的时候在这里插入图片描述
可以看到,当我们没有使用任何东西的时候,就理所当然不会import任何东西(当然这也是不可能的,我们不用vue的功能引入vue这个框架干嘛)
但只要我们但凡写入一个标签,就会import需要的内容
在这里插入图片描述
那么,我们试着使用v-model,就会引入v-model相关的内容
在这里插入图片描述
可以看到,这里引入了_vModelText来实现v-model的功能,而让我感到惊讶的是,vue3.0不只是对v-model这个功能采用import的方式来使用,它还针对input的类型来进行引用,我们知道input的默认type为text,所以这里引入的是_vModelText,而如果我们将type做一个改变,如下
在这里插入图片描述
可以看到,我们引入的内容发生了变化,从_vModelText变成了_vModelRadio,而如果我们的type是一个动态绑定的话,就会引入所有的model
在这里插入图片描述
我们看到,这里的引用又变成了_vModelDynamic,表示引入了所有类型对应的v-model实现的代码

v-model相关的内容可以在GitHub上的vModel.ts文件里看到,这里实现了多个类型的v-model功能实现,然后使用export暴露出来

三、Composition API

在这里插入图片描述

  • 能和options API一起使用
  • 灵活的逻辑组合与复用
  • 响应式模块可以和其他框架搭配使用

实际上我们完全可以将Composition API视为一个全新添加的API,它不会影响到我们之前的各种API的使用
在vue2.x里面,我们可能会采用mixin来进行逻辑的抽取,但在vue3.0里面不建议使用mixin,推荐使用Composition API

我们可以来https://composition-api.vuejs.org/查看Composition API的内容
我们也可以点击页面右上角的API Reference查看相关API
主要看的有下面六个主要的API
在这里插入图片描述
而这六个API下面的东西(指API文档目录中这六个API下面的内容),很多都是常见的一些工具函数

四、Fragments,Teleport,Suspense

Fragments

在这里插入图片描述

  • 模板里面不再要求需要是一个单独的根节点,甚至于模板可以只是一个纯文本
  • render函数也可以直接返回一个数组
  • just works 这个表示说我们只需要按往常写我们的代码,会让我们感知变化的只是一个根节点可以不再是一个,其他的我们在写代码时不会有感知,所以,just works

Teleport

在这里插入图片描述

  • 以前被称为<Portal>,对标React 的Portal
  • 更多细节将由@Linusborg 分享

Suspense

在这里插入图片描述

  • 等待嵌套树中的嵌套异步依赖项
  • 支持async setup()
  • 支持异步组件

五、更好的TS支持

在这里插入图片描述

  • 有使用ts写的自动类型定义的提示的代码块
  • 在js和ts中API是相同的
    • 事实上,代码也基本相同
  • TSX的支持
  • class组件还会继续支持,但是需要引入vue-class-component@next,该模块目前还处在 alpha 阶段,不是推荐的使用方式

当前有一个vue3 + TS的插件正在开发中,有类型检查和自动补全等功能,当前还在实验性阶段
在这里插入图片描述
后面可能会放到vs code里面的vetur插件,我没弄错的话应该是这个
在这里插入图片描述

六、Custom Renderer API 自定义渲染器API

在这里插入图片描述

  • 正在进行NativeScript Vue集成
  • 用户已经可以尝试使用WebGL自定义渲染器,它可以与普通Vue应用程序一起使用

这个实际上vue2也可以做,之前是通过vue里面一个非暴露的API去实现这样的功能,但问题是这样我们需要去fork vue

用起来简单,可以用来做cli工具

接下来的工作

在这里插入图片描述

Docs & Migration Tools / Guides

文档和升级指南
在这里插入图片描述

Router

在这里插入图片描述
现在有一个vue3兼容的一个alpha,暂时可以用,但不是很稳定
可以通过npm使用,传送门在此
Router有一些API的改动,可以到rfc里面看到相应的改动

Vuex

在这里插入图片描述
vuex@next目前基本没有API改动,因为当前是要先做一个vue3能先用起来的vuex,vuex的下一个版本正在设计中,但短期应该不会放出来

CLI

在这里插入图片描述
现在有一个vue-cli-plugin-vue-next插件,可以帮助生成一个基于vue3的项目

DevTools

在这里插入图片描述
已经可以让现在的DevTools去支持现在vue3的组件树,但是还需要完善,才能拿出来用

Vetur

在这里插入图片描述
应该会在vue3发布前把模板分析之类的功能整合进去

2.x版本还有最后的2.7

在这里插入图片描述

  • 2.x还有最后一个2.7版本要发布
  • 从3.0版本移植兼容性的改进
  • 对一些vue3要移除的内容做出警告
  • LTS 18个月

大概就是这些了,其实里面有一些内容我理解也不是特别清晰,后续去看一些rfc和一些源码后会补充在这篇博客里

手把手教你用Pytorch代码实现Transformer模型(超详细的代码解读) 本文整理了非常清楚的Transformer模型结构图,建议大家在看代码的时候能结合这个结构图来理解,这样理解起来会比较容易! 用Pytorch实现Transformer的完整代码 阅读详情

相关推荐

硬件笔记——HDMI接口

HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。

2501_94625908的博客 532

vue3新特性概览

Vue自3.0 beta发布以来,随着相关技术支持度增强,越来越多的企业开始 Vue3.0新特性 一、节点打Tag 静态节点 <span>value</span> value 动态节点 <span>{{value}}</span> patchFlag <span>{{value}}</span> patchFlag vue3.0底层,会自动识别某个节点是否是动态的,如果是动态的会自动生成标识(不同的动态会有不同的标识对应,如内容文本

知其白,守其黑;和其光,同其尘。 2173

如何用 Python 实现自动化测试?详细步骤和代码示例

Python自动化测试实战指南 本文系统介绍了使用Python构建自动化测试体系的完整方案。主要内容包括: 环境搭建:Python 3.8+虚拟环境配置,安装pytest、Selenium等核心测试库 分层测试实现: 单元测试:通过计算器示例演示pytest断言和异常测试 API测试:使用requests库进行RESTful接口验证 UI测试:Selenium WebDriver实现网页交互测试 高级特性: 使用fixture管理测试依赖 参数化实现数据驱动测试 生成HTML和Allure测试报告 GitH

m0_64424835的博客 448

vue3的性能优化

尤大在开发者大会上说vue3相较于vue2性能提高了1.2-2倍,经测试实际能达到2-3倍。 vue3的性能优化主要体现在如下几点: 一、diff算法优化 vue2中diff算法是整体全量比对,对整颗vdom树进行循环对比操作 而在vue3中加入了静态标签(PatchFlag)的概念 PatchFlag的意思是给元素上增加一个标记 下图中的1就是一个PatchFlag标签 vue3中对PatchFlag进行了划分,不同元素加上不同的标签类型 TEXT = 1 // 动态文本节点 CLASS=1<&

qq_40434213的博客 3863

哈密顿-雅可比不等式:连接最优控制与优化算法的自然物理原理

在控制理论与优化算法之间,存在一个深刻而实用的桥梁。最优控制理论旨在通过设计控制输入,使动态系统在时间维度上达到性能最优,其核心数学工具如庞特里亚金极大值原理和哈密顿-雅可比-贝尔曼方程,为解决连续时间系统的优化问题提供了优雅框架。然而,这些方法在高维非凸问题中面临求解难题。哈密顿-雅可比不等式作为一种松弛方法,通过构造李雅普诺夫函数并验证一个不等式条件,转而寻求性能有保障且易于实现的次优解,其本质是保证系统能量衰减和性能上界。这一原理与耗散性理论紧密相连,体现了自然物理系统(如阻尼振动)中能量耗散的普遍规

weixin_30582943的博客 313

Unity通过Vosk实现离线语音识别方法

以下是一个使用 Unity 和 Vosk(一个开源的离线语音识别库)的简单示例。将Vosk的DLL文件(如libvosk.dll、vosk.dll等)放入Assets/Plugins文件夹中。通过以上步骤,你可以在Unity中实现一个简单的离线语音识别功能。音频格式:确保录音的音频格式与Vosk模型要求的格式一致(通常是16kHz、16bit单声道)。首先,你需要下载Vosk的语音识别模型。在Assets文件夹中创建一个Plugins文件夹,用于存放Vosk的DLL文件。打开Unity并创建一个新的项目。

qq_39515892的博客 2068

vue3.0性能优化点之静态标记(PatchFlag)

vue3.0性能优化点之静态标记(PatchFlag)

前端攻城狮 5951

SAP-ABAP:SAP中如何查看系统表之间的关联关系?

在业务逻辑开发或者ALV开发过程中,我们通常要从系统中找出几个标准表之间的关联关系,有的是head与item,通过外键进行关联的关系。那么怎么去找到呢?以上就是具体如何产看系统表之间的关联关系的步骤,对于不同代码的业务顾问,也是必须要掌握的。

LinkStar的博客 2430

Vue 3新特性

Vue 3 新特性 更快、更小、更易维护。 1、重构了虚拟DOM的写法,渲染速度提升。 vue2.X中 对于视图中模板每次更新,Vue会遍历模板下的每个节点,生成对应的虚拟DOM,再与原模板中的节点比较差异,通过DIFF算法找到变化的节点,改变节点的内容实现更新; vue3 标记模板中的静态内容,区别了模板中的静态和动态节点;更新时,只diff操作动态的内容 2、使用Proxy代替Object.defineProperty 3、事件缓存 cacheHandlers 事件侦听器缓存 1 vue2.x中,绑定事

weixin_50959040的博客 1055

枪支/刀具检测 (gun, knife) - SIXray, Clasp Dataset,YOLOv11+UI界面+数据集

python复制编辑# 计算 CIoU 损失。

YOLO 538

2021年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0

人生就是一个不断学习的过程 1008

tcp/ip基础

第一章 1.RFC 全称 Request For Comment 译为请求注释 由IETF及其指导小组IESG共同制定的Internet协议簇的规范文档就是作为RFC进行发布的,许多TCP/IP协议都得到了RFC的充分论证和文档支持。 2.OSI通信机制 整个通信过程都必须经过一个自上而下(发送方),或自下而上(接收方)的数据传输过程,但通信必须在双方对等层次进行 数据必须...

qq_37200978的博客 1174

使用CloudCompare和CANUPO进行点云分类的编程指南

在本文中,我们将介绍如何使用CloudCompare和CANUPO库进行点云分类的编程。CloudCompare是一款功能强大的开源点云处理软件,而CANUPO是一个用于点云分类和分割的C++库。这只是一个简单的点云分类示例,CANUPO库还提供了其他更高级的功能和算法,以满足各种点云分类需求。该函数接受点云数据、地面点掩码和非地面点掩码作为输入,并将分类结果存储在这两个掩码向量中。完成安装后,我们可以开始编写点云分类的代码。最后,我们遍历点云数据,并根据地面点和非地面点的掩码将结果打印出来。

ByteWhisper的博客 1058

Vue.js 3.0 Beta笔记:尤雨溪直播内容整理

Vue.js 3.0 Beta 前言 在4月21日晚,Vue作者尤雨溪在哔哩哔哩直播分享了Vue.js 3.0 Beta最新进展。 以下是直播内容整理。 Vue.js 作者尤雨溪:聊聊 Vue.js 3.0 Beta:B站录播地址 本文转载自:原文章链接 1. 全新文档RFCs Vue.js 3.0 Beta发布后的工作重点是保证稳定性和推进各类库集成 所有的进度和文档都将在全新RFCs文档可以...

知识点沉淀包括不限于前端 1331

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

今晚Vue.js作者尤雨溪与你相约前端圈的B站直播间

2020年4月21日晚上9:30,Vue.js作者尤雨溪与你相约前端圈的B站直播间,和大家聊聊 Vue.js 3.0 beta。预约地址:https://live.bilibili.co...

Crazymryan的博客 238

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

尤雨溪 - 聊聊 Vue.js 3.0 Beta 官方直播完整版

早上好video:https://www.bilibili.com/video/BV1Tg4y1z7FHnews:https://github.com/vue3/vue3-News ...

前端开发博客 232

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

技术博客的底层逻辑:从人到程序员的内容生长范式

技术博客本质上是一种知识沉淀系统,其核心不在流量运营或内容产量,而在于认知深度、工程验证与长期主义的协同演化。它首先承载‘人’的底层判断力——对技术演进的预判与质疑;其次支撑‘技术人员’的真实问题解决能力,强调可复现、可测量、可证伪的闭环验证;最终服务于‘程序员’的日常效率,将工具特性转化为工作流呼吸感。这种‘人→技术人员→程序员’的递进结构,既是内容组织方法论,也是工程师专业成长的镜像路径。在.NET等垂直技术生态中,聚焦纵深而非广度,用问题考古学替代知识搬运,以长尾搜索词锚定真实需求,使博客成为跨越版本

diaojin6880的博客 357

Vue3 一些面试题

Vue3 新功能 createApp emits 属性 多事件处理 Fragment 不再限于模板中的单个根节点 移除 .sync 改为 v-model 参数 异步组件的引用方式 移除 filter Teleport 以前称为 <Portal>,译作传送门(之前都是放在 APP 里,用这个可随意放置) Suspense 可以嵌套层级中等待嵌套的异步依赖项 Composition API reactive ref、toRef、toRefs rea

雪急飞绪博客 1万+

不删除侦听器–使用ListenerHandles

听一个可观察的实例并对它的变化做出反应很有趣。 做一些必要的事情来打断或结束这种聆听会变得很有趣。 让我们看看问题的根源和解决方法。 总览 这篇文章将首先讨论这种情况,然后再讨论常见的方法和问题所在。 然后,它将提供解决大多数问题的简单抽象。 尽管示例使用Java,但许多其他语言也存在缺陷。 提出的解决方案可以应用于所有面向对象的语言。 那些懒于自己在Java中实现抽象的人可以使用L...

最佳 Java 编程 289

RFC(Request For Comments)征求修正意见书

 RFC(Request For Comments)征求修正意见书 征求修正意见书(英语:Request For Comments,缩写为RFC),是由互联网工程任务组(IETF)发布的一系列备忘录。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件,以编号排定。目前RFC文件是由互联网协会(ISOC)赞助发行。 RFC始于1969年,由斯蒂芬·克罗克用来记录有关ARP

iw1210的专栏 2522

RFC:Request For Comments

RFC:Request For Comments 目录 编辑机制 处理过程 历史 文件架构 发展历程 分类 文档阅读 Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。目前RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加...

stc的博客 664

计算机组成原理

TCP/IP TCP/IP不是一个协议而是一个协议族的统称。 IP地址

qq_40831898的博客 600

尤雨溪vue3.0直播笔记

weixin_44546177的博客 329

从底层了解Vue3

Vue3带来了什么(新特性) 更快 1. 重写虚拟dom,diff算法优化 回顾Vue2的vdom: 用 JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树,插到文档当中 当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异 把所记录的差异应用到所构建的真正的DOM树上,视图就更新了 vue2.x的diff算法叫做全量比较,顾名思义,就是当数据改变的时候,会从头到尾的进行vDom对比,即使有些内容是永恒固定不变的,它也会一一遍

weixin_42467467的博客 1136

昨晚尤大的连麦直播,我学到了很多!!!

昨晚朋友圈已经被连麦尤大的直播刷屏了,主要就是答答疑,聊聊天~ 总共大概聊了一个半小时。给你们看看帅气的尤大 我也抱着 「学习」 、「长见识」 的态度去直播间听了一个多小时(因为前半段有事,所以没能来得及赶上开场),说真的,虽然只听了一个多小时,但是收获还是很大的,这里也凭借着我7秒钟的记忆,记录下了一些尤大的一些答疑和闲聊 本文不是100%的原话复述,也略微掺杂了一些个人看法,当然接下来所有括号()中的内容都是我自己加的,是为了你们更好得阅读 尤大,对于看源码你怎么看? 这个问题是我在进入直播间以后,

零一的博客 1万+

vue 播放器视频插件 之 vue-video-player 铺满全屏自动播放

.video-js .vjs-tech{ object-fit: cover; }

Bonjours的专栏 9192
上一篇: React学习笔记(十)React Hook
下一篇: Vue3.0都快发布了,还不看看Vue和React的区别
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值