
js学习
coderyy1
这个作者很懒,什么都没留下…
展开
-
函数节流与函数防抖
函数防抖和函数节流在某些时候,某些事件会频繁的触发,影响性能,所以需要防抖操作来进行性能优化。比如用户在输入框中输入内容而输入框会给出相关内容,此时如果监听input的内容变化则会多次触发对应事件,而这些事件是我们不希望触发的。我们希望当input框的内容改变并且一定时间内不再改变时,才将相关内容渲染在页面上。此时就可以用到函数防抖和函数节流。一、函数防抖函数防抖重点在于有足够的时间间隔才触发某个回调。实现方法的核心在于延时器的注销和重新注册。函数防抖在事件被触发n秒后再执行回调,如果在这原创 2020-10-21 22:30:42 · 120 阅读 · 0 评论 -
发布订阅模式与观察者模式的学习
观察者模式(Observer Pattern)观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。当观察者(Observer)订阅(Subscribe)之后,一旦主题的内容发生更新,就会触发Fire Event中的事件自己写的简易版观察者模式// 定义主题Subscribe class Subject {原创 2020-10-13 10:13:05 · 105 阅读 · 0 评论 -
Vuex
Vuex——状态管理模式创建const store = new Vuex.Store({state: { }, mutations: { }, actions: { }, getters: { }, modules: { }})statestate用来存放状态,也就是变量。Vuex 使用单一状态树,每个应用只对应一个vuex对象。创建state: { cartL原创 2020-10-12 16:23:12 · 108 阅读 · 0 评论 -
有关vue组件的强制刷新
问题在做vue小项目的分类页面时,发现在点击相应的类别后详情页面依旧为空,想到是由于数据的异步请求造成。所以想在每次异步请求完成后强制vue刷新一下对应的分类详情页面子组件。三种强制刷新组件的方法1.使用v-if销毁对应子组件再重新创建,该方法不推荐,需要使用watch监听数据的变更。2.使用this.$forceUpdate方法,这个方法可以使当前组件调用这个方法时,重新渲染组件。3.更改key的值可以使组件重新渲染,这是官方推荐的一种方法。解决使用的是第三种方法,也就是修改组件的key原创 2020-10-09 18:48:57 · 387 阅读 · 0 评论 -
关于Better-Scroll的高度计算问题
问题出现在做vue的商城小项目的时候,为了解决原生滚动的问题而使用了Better-Scroll插件。但是使用时发现Better-Scroll的高度计算出了点问题,导致整个内容无法滚动。原因所有的图片都是异步加载的,所以当Better-Scroll计算内容高度时图片的加载可能还没有完成,导致高度计算错误,从而出现内容高度没问题但是却无法滚动的情况。解决方法尝试在创建Better-Scroll对象时使用nextTick()方法来解决该问题,但是没有效果,所以又尝试给了一个200ms延迟,解决了该问题,原创 2020-10-08 18:50:01 · 1562 阅读 · 0 评论 -
学习记录——axios的拦截器
axios的拦截器axios的拦截器有2种,请求拦截和响应拦截。请求拦截请求拦截又分为请求成功拦截和请求失败拦截。基本用法: //请求拦截器,两个参数(请求成功, 请求失败) // 注意:拦截掉之后要将config给返回出去才能完成请求 axios.interceptors.request.use(config => { console.log(config); return config; }, err => { co原创 2020-09-29 20:11:15 · 167 阅读 · 0 评论 -
学习记录——偶然发现的js闭包理解
闭包闭包概念闭包:能够读取其他函数内部变量的函数也就是定义在一个函数内部的函数,这个内部的函数持有外部函数变量的引用。闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函数被创建,就会在函数生成时生成闭包。 ———MDN阮一峰老师的思考题(this和闭包)代码片段1: var name = "The Window"; var object = { name : "My Object", getNameFunc : func原创 2020-09-29 18:50:02 · 259 阅读 · 0 评论