应该记住的

一、vue3 在watch 中监听数值变化时,使用防抖节流控制接口频繁调用

二、watch 监听,只监听当前vue文件中声明的变量或函数,当在监听中调用从外部js文件引入的方法时,要在该vue文件中重新声明

三、tool.js文件

export const debounce = (fn, delay) => {
  let time;
  return () => {
    clearTimeout(time);
    time = setTimeout(() => {
      fn();
    }, delay);
  };
};

index.vue

import {debounce} from '...........'
watch(rulerValue, (news) => {
  _debounce()
});

const _debounce =debounce(()=>{
  // 调接口得方法
})

四、git stash使用,拉取分支代码,但不想提交当前已改得代码,

先使用git stash ,然后拉取代码,

1,git status 查看本地修改和库上的差异

2,git stash save "名字" 将修改内容保存在堆栈中

3,git pull 将本地仓库更新到最新

4,git stash pop(或git stash pop +名字)将堆栈中的修改应用到当前分支

5,git status 查看修改,如果有冲突需要手动修改冲突

6,修改冲突后提交
 

五、深入理解 Vue 3 响应性原理 —— Proxy & Reflect - 知乎 (zhihu.com)

可以很好理解得vue3响应式原理,不论vue2、vue3,都要收集依赖和触发依赖,这两点差不多,只不过vue2使用ES5的Object.defineProperty()收集和触发。vue3使用ES6 Reflect和 ES6Proxy(代理)

六、父子组件,子组件用v-model绑定父组件传的值,这样,子组件的值跟父组件的值保持一直

七、v-model绑定computed的值,若是computed值的对象中的值,则可以,若是直接computed的值,则不行

八、import引入文件夹时不写具体文件名

该文件夹下的文件:

如果package.json存在且设置正确的情况下,会加载package.json;若不满足,则加载index.js;

若不满足,则加载index.vue

九、过多的if,else问题,可以用数组匹配代替,

十、使用vue路由时,可以一个路由内添加多个组件,替代多个组件式引入

十一、JavaScript Class set 和get方法:

在构造函数中设置值后,类实例化后,可以获取、设置值

get 和set一起使用,set对值用作一些特殊处理,get返回处理后的值

 class Test {
   constructor() {
     this.a = "11";
     this.b = '333'
   }
   get a (){
     return this._a
   }
   set a (value){
     this._a = value
   }
  }
  let test = new Test()
  test.a = '222'
  console.log(test.a); // 2222
  test.b = '444'
  console.log(test.b); // 444

在使用new关键字的时候,new类时经常传空值,在类中得做设置,对象后加?

在JavaScript中,对象属性后加"?"表示该属性是可选的。如果一个对象有一个可选属性,则在使用该属性时可以不必检查该属性是否存在,避免了出现空指针异常的情况。

class Person {
  constructor(tplitInfo) {
    console.log('tplitInfo.userName',tplitInfo,Boolean(tplitInfo?.userName));
    this.userName = tplitInfo?.userName || ''  , 
    this.id = tplitInfo?.id || '' ;
    
  }
}
export default Person;

对象后?判断对象是否有值

a = +a  把a转换成数值类型的

DOM diff算法是前端开发中常见的优化技术,它可以在更新DOM时,只更新需要更新的部分,从而提高页面的渲染性能。下面是一个简单的DOM diff算法的实现思路:
遍历旧的虚拟DOM树和新的虚拟DOM树,将它们的每个节点进行比较。
如果节点类型不同,直接替换旧的节点。
如果节点类型相同,比较节点属性是否有变化,如果有变化,更新节点属性。
如果节点有子节点,递归执行步骤1-3。
如果旧的虚拟DOM树比新的虚拟DOM树多出节点,直接删除多余的节点。
如果新的虚拟DOM树比旧的虚拟DOM树多出节点,直接添加新的节点。
实现DOM diff算法的关键在于建立虚拟DOM树,虚拟DOM树可以用JS对象来表示一个真实的DOM树,通过比较新旧虚拟DOM树的节点属性和子节点,可以判断出需要更新、删除或添加的节点。
以上是一个简单的DOM diff算法的实现思路,具体实现还需要考虑到各种情况的特殊处理,例如key属性的使用、组件化、异步更新等。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值