
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
一、面试前期准备面试需求多面几家公司,找找面试感觉,让自己进入这个状态,不需求可以去背面试题,是个一边面试,一边总结,一边学习,面试完要把面试的题回来搞懂。面试过程中要学会链式回答,尽量避免冷场,如果碰到不会,果断说不是太了解,说个感觉类似的知识点说有点了解,不要在不知道的问题上耽误面试时间,在这个短暂的时间中更多体现你会的。一般面试问题几乎都是看的你简历来问的,首先就是要把自...
MediaRecorder出现得比较早,只不过Safari/Edge等浏览器一直没有实现,所以兼容性不是很好2.WebRTC的getUserMedia结合AudioContext(目前主流方案)WebRTC已经得到了所有主流浏览器的支持。Web Audio API 是 HTML5 提供的一组 JavaScript 接口,用于在 Web 上处理和合成音频。

概念:这儿的watch就是用户写的watch方法,在写watch时有两个属性一个immediate是用来确定是否立即执行方法的,另一个属性就是下来要讨论的deep,当它为true就会实现深度监听,今天我们是需求知道它怎么实现的?computed为什么没有deep:true?因为computed是用在模板里的,在模板中的数据会调一个方法JSON.strginify(),放一个对象,默认会对这个对象里
概念:computed是一个计算属性,类似于过滤器,对绑定到view的数据进行处理,计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。它用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理。原理:在initState的时候会初始化initComputed,默认初始化计算属性initCompute
一、概念1.异步组件可以减少打包的结果。会将异步组件分开打包,会采用异步的方式加载组件,可以有效的解决一个组件过大的问题。不使用异步组件,如果组件功能比较多打包出来的结果就会变大。2.异步组件的核心可以给组件定义变成一个函数,函数里面可以用import语法,实现文件的分割加载,import语法是webpack提供的,采用的就是jsonp。components:{VideoPlay:(resolve
前言:因为不采用异步更新,在每次更新数据都会对当前组件进行重新渲染。所以为了性能考虑,vue 会在本轮数据更新后,再去异步更新视图。vue是组件级更新,当前组件里的数据变了,它就会去更新这个组件。当数据更改一次组件就要重新渲染一次,性能不高,为了防止数据一更新就更新组件,所以做了个异步更新渲染。(核心的方法就是nextTick)原理:当数据变化后会调用notify方法,将watcher遍历,调用u
一、概念:渲染组件时,会通过 Vue.extend 方法构建子组件的构造函数,初始化组件的时候会进行实例化。终手动调用 $mount() 进行组件挂载渲染。更新组件时会进行 patchVnode 流程.核心就是diff算法。二、组件渲染流程一般组件渲染时,我们会这样写h => h(App),app最后是一个对象,会通过一个createElement方法把这个app对象渲染成一个虚拟节点,然后调
前言:数组并没有使用Object.defineProperty重新定义数组的每个属性,vue中是怎么检测到数组的变化?数组方法(vue中改写的7个数组方法):push,pop,shift,unshift,sort,splice,reverse理解:1.数组的方法(以上7个)都可以更改了数组的内容,然后更新就好了2.vue中对数组的原型方法进行了重写,使用函数劫持的方式,重写了数组的方法3.vue
一、理解:1.v-for比v-if优先,如果每一次都需要遍历整个数组,将会影响速度,尤其是当之需要渲染很小一部分的时候。如果连用的话会把 v-if 给每个元素都添加一下,会造成性能问题。一般时候把v-if放在外层,如果不符合就不去执行了。二、原理:const VueTemplateCompiler = require('vue-template-compiler');let r1 = VueTem
一、事件绑定有几种?1.原生的事件绑定,原生 dom 事件的绑定,采用的是 addEventListener 实现。2.组件的事件绑定,组件绑定事件采用的是 $on 方法 。let compiler = require('vue-template-compiler'); // vue loader中的包let r1 = compiler.compile('<div @click="fn()"







