获得徽章 7
- #每天一个知识点#
Generator 函数的定义,是通过 function * 实现的
对 Generator 函数的调用返回的实际是一个遍历器,随后代码通过使用遍历器的next方法来获得函数的输出
通过使用 yield 语句来中断 Generator 函数的运行,并且可以返回一个中间结果
每次调用 next 方法,Generator 函数将执行到下一个yield语句或者是return语句。下面我们就对上面代码的每次next调用进行一个详细的解释
第一次调用 next 方法的时候,函数执行到 yield "Hello" 语句停了下来,并且返回了 Hello 这个 value,随同value返回的done属性表明Generator 函数的运行还没有结束
第二次调用 next 方法的时候,函数执行到 return "World!" 语句停了下来,并且返回了 World! 这个 value,随同 value 返回的done属性表明 Generator 函数的运行已经结束
第三次调用 next 方法的时候,由于 Generator 函数执行已经结束了,所以函数调用立即返回,done 属性表明 Generator 函数已经结束运行,value 是空的,因为这次调用并没有执行任何语句展开赞过评论2 - #每天一个知识点#
Vue3 新特性
1 . 数据响应式 原理重新实现 ( ES6 的 proxy 替代了 ES5 的 Object.defineProperty)
解决了对象、数组更新后的检测, 大大优化了响应式监听的性能
原来检测对象属性的变化, 需要一个个对属性递归监听, proxy 可以直接对整个对象劫持
2 . 虚拟 DOM - 新算法 (更快 更小)
3 . 提供了 composition api, 可以更好的逻辑复用
4 . template 模板可以有多个根元素
5 . 源码用 typescript 重写, 有更好的 类型推导 (类型检测更为严格, 更稳定)
小结: vue3 性能更高, 体积更小, 更利于复用, 代码维护更方便展开赞过11
![[调皮]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_13.aaa8265.png)
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
![[撇嘴]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_14.8130d96.png)
![[可怜]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_5.ece2a96.png)