摘要:事件循环( Event Loop ),微任务( promise) 与 宏任务( setTimeout ): 微任务( micro task ) :Javascript引擎发起的任务 宏任务( macro task ) :宿主(我们)发起的任务 异步任务的执行优先级并不相同,它们被分为两类:微任务(
阅读全文
摘要:任务队列、回调队列、事件循环( Event Loop ): 任务队列( Task Queue ):主线程执行完毕后所触发的异步任务( WebAPIs ),叫任务队列; 回调队列( Callback Queue ):这些异步 WebAPI 执行完成后得到的结果,会添加到 callback queue
阅读全文
摘要:进程和线程(一个进程中可以有多个线程) 进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小单位) 线程是cpu调度的最小单位(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程) 进程之间互相独立。线程是不能单独存在的,它是由进程来启动和管理的。 一个进程就是一个程序的运
阅读全文
摘要:JS为单线程; 浏览器为多线程; 通常讲到浏览器的时候,我们会说到两个引擎:渲染引擎和JS引擎。渲染引擎就是如何渲染页面,Chrome/Safari/Opera用的是Webkit引擎,IE用的是Trident引擎,FireFox用的是Gecko引擎。 JS引擎可以说是JS虚拟机,负责JS代码的解析和
阅读全文
摘要:forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数; 总结:forEach操作数据会改变原数组,map不会改变原数组,而是会返回一个新数组。 一、相同点: 1. 都是循环遍历数组中的每一项 2. 每次执行匿名函数都支持三个参数,
阅读全文
摘要:Webpack的构建流程: Webpack启动后,从entry开始,去递归解析entry依赖的所有module,再找到每一个module的时候,会根据module.rules里配置的不同loader进行相应的转换,对module进行转换后再解析出当前module依赖的其他的一些模块,这些module
阅读全文
摘要:Webpack 会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有模块打包成一个或多个 bundle,根据 entry 配置生成代码块 chunk 。 官网解释:webpack 是一个现代 JavaScript 应用程序的静态模块打包器(mod
阅读全文
摘要:TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括: 类型批注和编译时类型检查 类型推断 类型擦除 接口 枚举 Mixin 泛型编程 名字空间 元组 Await TypeScript 由以下几个部分组成: 模块 函数 变量 语句和表达式 注释 数据类型:{ 基本
阅读全文
摘要:先 捕获 再 冒泡 js的事件冒泡机制呢,就是一个DOM树,一级一级向上冒的过程,最终是到document这个根节点这里。js的事件冒泡机制,就像是一个水泡在水底下,冒泡到水面的过程。 捕获:从上往下;--> 目标阶段;--> 冒泡:从下往上。 DOM事件流 DOM2级事件规定的事件流包括 三个阶段
阅读全文
摘要:1. 正向代理: 正向代理类似一个跳板机,代理访问外部资源 比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了 正向代理的用途: (1)访问原来无法访问的资源,如googl
阅读全文
摘要:Vue为什么不能使用箭头函数? Vue组件本质上是一个 JS 对象; Vue 生命周期和 method 中也不能使用箭头函数。 React 组件(非Hooks)他本质上是一个 ES6 的 class,两者不同; React可以使用箭头函数!
阅读全文
摘要:v-for的优先级比v-if高。 解决方法1:修改eslint配置文件忽略v-for与v-if 不能同时使用的规则 .eslintrc.js rules中添加 "vue/no-use-v-if-with-v-for": ["error", { "allowUsingIterationVar": tr
阅读全文
摘要:与 2.x 版本生命周期相对应的组合式 API beforeCreate -> 使用 setup() created -> 使用 setup() beforeMount -> onBeforeMount mounted -> onMounted beforeUpdate -> onBeforeUpd
阅读全文
摘要:vue里的data为什么是一个函数? 因为组件是用来复用的,且 JS 里对象是引用关系, 如果组件中 data 是一个对象,那么这样作用域没有隔离,子组件中的 data 属性值会相互影响, 如果组件中 data 选项是一个函数,那么每个实例可以维护一份被返回对象的独立的拷贝,组件实例之间的 data
阅读全文
摘要:vue两大核心: 组件化,组件化就是将一个整理和拆分为一个一个小块(组件),组件可重复使用。可以简单的是认为组件是一个自定义标签的过程。 数据驱动。是让dom随着数据的变化自然而然的变化。开发者不必过多关注dom,只需要将数据组织好即可。
阅读全文
摘要:8大钩子函数: beforeCreate 一般使用场景是在加 loading事件 的时候,只是一个空壳,无法访问数据和dom,一般不做操作; created 处于loading结束后,还做一些初始化,实现函数自执行(data数据已经初始化,但是DOM结构未渲染完成,组件没有加载)绑定事件,挂载数据;
阅读全文
摘要:actions:异步的行动,功能和mutations是类似的, 都是去改变store里的state,不过actions和mutation有两点不同: < 1. actions 主要处理的是异步操作,mutations 必须同步执行,而actions 不受这样的限制,也就是说,actions我们即可以
阅读全文
摘要:vuex是vue配套的公共管理数据,可以在多个组件之间保持一致的数据。我们可以将共享的数据保存到vuex中。以后在任何组件中都可以获取和修改vuex中保存的公共数据了。 1. store{} // 贮存,用于保存共享数据,相当于vue中的data。 在使用Vuex的时候通常会创建Store实例new
阅读全文
摘要:vue父子组件生命周期执行顺序  1.首先执行的是父组件的beforeCreate 2.执行的是父组件的created周期 3.执行的是父组件的beforeMount周期 4.执行的是子组件的beforeCreate周期 5.执行的是子组件的created周期 6.执行的是子组件的beforeMo
阅读全文
摘要:vue中mixin使用和事件执行顺序: 混入 (mixins): 是一种分发 Vue 组件中可复用的功能。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。 这概念有点懵,理解就是:mixins就是组件的变量、方法抽离。方便在多个组件引用同样的方法 (注
阅读全文
摘要:vue跨级通信传值: EventBus; Vuex; provide / inject ; $attrs / $listeners; provide/inject:简单来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量,不管组件层级有多深,在父组件生效的生命周
阅读全文
摘要:Vue的组件如何传值? 父子通信的方式: 父向子传递数据是通过 props, 子向父是通过 $emit; 通过 $parent / $children 通信; $ref,$refs 也可以访问组件实例; 父传子: 子组件在props中创建一个属性,用来接受父组件的传来的值, 在父组件注册子组件,通过
阅读全文