- 博客(12)
- 收藏
- 关注
原创 vue2、vue3的响应式原理
用 object.defineProperty结合订阅者发布者模式进行数据劫持,并通过设置get和set方法对数据进行操作,设置值后在 get() 中向发布者添加该属性的订阅者,这里在编译模板时就会初始化每一属性的 watcher,在数据发生更新后调用 set 时会通知发布者 notify 通知对应的订阅者做出数据更新,同时将新的数据更新到视图上显示。因此vue2的响应式,通过数组方法(prop,push),或是删除,vue是不能监听的。2.描述符只有get和set,无法监听新增属性和删除属性的操作。
2022-10-18 23:32:43 230 1
原创 虚拟DOM和diff算法
虚拟dom是根据真实dom生成的一个js对象,里面有元素,属性和文本这些与真实dom中的元素,属性,文本一一照应。当对比相同点时会删除其中一个,不再深度比较;当对比不同点时,会将不同的地方进行记录,对比完后再将不同的地方渲染上,打上补丁。当数据更新时会生成新的虚拟dom,新的虚拟dom和旧的虚拟dom进行对比就是diff算法。3>tag和key,两者都相同,表示相同节点,不再深度比较。2>tag不相同,则直接删掉重建,不再深度比较。1>比较只会在同层级进行,不会垮层级进行。减少了dom操作,提高了性能。
2022-10-18 23:30:57 147
原创 关于git的使用
团队开发合作时要先拉取远程仓库,查看本地分支与远程分支是否一致,然后将自己的分支推送到远程仓库,最后合并分支,每个人加入到对方的分支中。本地合并冲突:两个分支修改了同一个地方,那么在向master主分支合并时就会产生冲突(修改了同一个地方,git不知道以谁为主。git checkout 分支名 切换分支(git checkout -b 分支名 表示创建并切换)git branch -d 分支名 删除分支(不要在当前分支下,否则删除不了)7 .git push origin master 推到远程主分支。
2022-10-18 23:12:43 134
转载 史上最全常用正则表达式大全
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些。原文:http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html。整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。二、校验字符的表达式。
2022-08-25 17:00:53 583
原创 This的指向
4.箭头函数中 this 比较特殊,箭头函数 this 为父作用域的 this,不是调用时的 this.要知道前四种方式,都是调用时确定,也就是动态的,而箭头函数的 this 指向是静态的,声明的时候就确定了下来;在 js 中 this 不是固定不变的,它会随着执行环境的改变而改变。要注意的是 this 取什么值,是在执行时确认的,定义时无法确认。3.构造函数中,this 指向 new 出来的那个新的对象;2.在函数中,this 永远指向最后调用他的那个对象;...
2022-08-04 16:40:56 83
原创 keep-alive
用 keep-alive 可以缓存滚动条的距离,在路由离开之前 beforeRouteLeave 里面记录当前页面的 scrollTop。在 activated 中 把刚才记录的滚动条的位置赋值给当前页面的滚动条。可以直接使用组件的 name 值 也可以使用正则表达式来规定缓存规则。如果加上 keep-alive 页面不会被销毁 会被缓存下来。一般是加在坑 router-view 的外面。这三种方式来规定缓存谁不缓存谁。exclude 规定不缓存谁。还能记录 填入的表单的内容。include 规定缓存谁。
2022-08-03 18:41:51 103
原创 什么是过滤器
2. 过滤器的第一个参数是 管道符 前面的数据,接下来的参数 数据 | 过滤器的名称(第二个参数,第三个参数,。3. 过滤器可以串联使用,下一个过滤器的参数 是上一个过滤器的返回值。要使用过滤器过滤某个数据 数据 | 过滤器的名称。Vue.filter(过滤器的名称,回调函数)对文本的格式化处理,常用于 时间、金额的过滤。分为 全局的过滤器 和 局部过滤器。1. 过滤器没有this指向。...
2022-08-03 17:18:41 303
原创 vuex是什么以及用法/vuex模块化/vuex辅助函数
mutations -- this.$store.commit.('mutations里的方法名字',要传的值)使用的时候 this.$store.commit("a(模块名字)/add(模块里方法的名字)")actions -- this.$store.dispatch.要调用的方法。mutations -- 唯一修改state内数据的方法 -- 同步的操作。getters-- this.$store.getters.要调用的方法。state -- this.$store.state.要调用的方法。...
2022-08-03 16:35:31 300
原创 判断数据类型的方法/如何判断数据类型
instanceof 一般用于判断引用的数据类型,最常用的 [] instanceof Array 判断是否是数组 isArray()toString() 全能 所有的数据类型都可以判断 Object.prototype.toString.call({})判断数据类型的方法有四种,分别是:typeof、instanceof、constructor、toString()typeof 一般是用于判断基本的数据类型,但是null除外,因为 typeof null 输出的是object。
2022-08-03 16:20:22 1878
原创 js中的数据类型有哪里以及区别(简单的、复杂的)
简单的:数字 number 、字符串 string、布尔的 boolean、未定义 undefined、空 null、定义唯一的 Symbol(ES6新增的)、大数字 BigInt。简单的数据类型和复杂的数据类型的区别是:简单的数据类型是存放在栈里的,而复杂的数据类型是存放在堆中的。复杂的:数组 Array 、对象 Object、函数 function、正则、日期 Date()js数据类型分为两种:简单(一般的/基本的)的数据类型和复杂(引用)的数据类型。
2022-08-03 16:01:03 284
原创 什么是生命周期函数/vue的生命周期
errorCapture有三个参数 第一个是什么错 第二个那个组件 第三个具体报错的地点 ,可以return true和false return false的时候错误不会向外展示。创建前后:beforeCreate 创建前、 created 创建后、更新前后:beforeUpdate 更新前、updated 更新后、挂载前后:beforeMount 挂载前、mounted 挂载后、可以在创建后获取到data里边的数据,可以在挂载后获取到dom元素。dom更新/视图更新的时候会触发更新的函数。...
2022-08-02 12:07:29 153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人