• 关于this指向和react vue2 3 的diff--后续补充


    this指向

    全局作用域中或者普通函数中this指向全局对象window

    立即执行函数this必定指向window

    定时器this指向window

    事件中this指向事件源对象

    方法中谁调用就指向谁

    对象内调用方法,谁调用就指向谁

    构造函数中this指向对象实例

    1.全局作用下默认绑定window 全局作用下独立调用函数绑定window

    2.隐式绑定:对象內调用方法 谁调用就指向谁

    1. let obj = {
    2. name: 'obj',
    3. foo: function () {
    4. console.log(this); //this指向obj
    5. }
    6. }
    7. obj.foo()
    8. ===================
    9. 隐式丢失
    10. let obj = {
    11. name: 'obj',
    12. foo: function () {
    13. console.log(this); //obj
    14. function test() {
    15. console.log(this); //window 为什么? 因为test独立调用
    16. }
    17. test()
    18. } } obj.foo()
    19. ===================
    20. 隐式丢失
    21. let obj = {
    22. name: 'obj',
    23. foo: function () {
    24. console.log(this); //window
    25. 为什么不是obj? bar拿到obj.foo的引用,然后在全局下独立调用
    26. } }
    27. let bar = obj.foo
    28. bar()
    29. =======

    3.显式绑定

    call、apply、bind bind返回一个新函数,新函数指向绑定的对象,旧函数不会

    4、new绑定

    this指向函数实例化之后的对象

    绑定规则优先级:

    new绑定 > 显式绑定 > 隐式绑定 > 默认绑定

    输出题:

    1. var name = "outer"
    2. function K() {
    3. let name = "k"
    4. let innerObj = {
    5. print: function () {
    6. console.log(name)
    7. console.log(this.name)
    8. }
    9. }
    10. return innerObj
    11. }
    12. //o只有print
    13. // 创建对象并且调用 调用函数k返回对象 赋值给o
    14. let o = K()
    15. o.print()
    16. let p = o.print
    17. p()
    18. //k undefined k outer
    1. //baz bar foo
    2. function baz() {
    3. console.log("baz");
    4. bar(); // <-- bar的调用位置
    5. }
    6. function bar() {
    7. console.log("bar");
    8. foo(); // <-- foo的调用位置
    9. }
    10. function foo() {
    11. console.log("foo");
    12. }
    13. baz(); // <-- baz的调用位置

    # vue2 vue3 react 的diff区别    

    diff:

    Vue 3.x 在 diff 算法上引入了一些新的优化策略,如静态提升等,以减少 diff 比较的开销;

    而 React 则通过 Fiber 架构实现了增量式的 diff 算法,实现了更加灵活和高效的精准的更新

    vue3静态提升:该策略通过分析模板生成的虚拟 DOM 树,将静态节点(不会发生变化的节点)提升为常量,减少 diff 比较的开销。

    react增量式的diff算法:即通过将整个更新过程拆分成多个小任务,并利用调度器动态调整任务的优先级,从而实现更加灵活的更新控制。

    React 的 diff 算法不仅考虑了节点的类型和属性,还考虑了节点的位置变化、子节点的顺序变化等情况,以实现更加精确的更新。

  • 相关阅读:
    商业化广告--体系学习-- 4 -- 行业蓝图篇 -- 广告产品的变化与发展趋势
    就瞎写=感想
    河南灌溉排涝设计丙级升乙级:人员配备结构与升级难点
    企业大数据发展面临问题之存算分离技术思考
    mybatis-plus学习笔记
    mysql的trace追踪SQL工具,进行sql优化
    IBM MQ 通道
    【网络】主机连接 TCP 三次握手
    判断二叉树是否为完全二叉树
    广播状态实现注意事项
  • 原文地址:https://blog.csdn.net/wyzqhhhh/article/details/136676386