1.单页面应用程序(SPA)的优缺点
- 一、优点
-
- 1.良好的交互体验
- 2.良好的前后端工作分离模式
- 3.减轻服务器压力
- 二、缺点
-
- 1.首屏加载慢
- 2.不利于SEO
- 3.不适合开发大型项目
2.EventLoop事件
先同步后异步 然后先微任务后宏任务
3.原型链
实例通过proto找到它的原型即构造函数的prototype,构造函数的prototype在通过proto寻找他的原型,直到找到proto为null的时候 这个就是实例的原型链
每个函数都有一个 prototype 属性
每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性。
每一个JavaScript对象(除了 null )都具有的一个属性,叫proto,这个属性会指向该对象的原型\
person.__proto__ === Person.prototype // true
原型链
console.log(Object.prototype.__proto__ === null) // true
new的过程
使用new关键字调用函数(new ClassA (…) )的具体步骤:
-
创建空对象; var obj = {};
-
设置新对象的constructor属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的prototype对象;
obj.proto = ClassA.prototype;
-
使用新对象调用函数,函数中的this被指向新实例对象: ClassA.call(obj); //{}.构造函数();
-
将初始化完毕的新对象地址,保存到等号左边的变量中
注意:若构造函数中返回this或返回值是基本类型(number、string、boolean、null、undefined)的值,则返回新实例对象;若返回值是引用类型的值,则实际返回值为这个引用类型。
vue生命周期
beforeCreate之前初始化事件和生命周期
created初始化结束
beforeMount在挂载前调用render函数首次被调用生成虚拟dom
mounted挂载完成dom渲染完成可以进行dom操作了
beforeUpdate数据有更新调用
updated更新完事
beforeDestory之后清楚watcher子组件事件监听器等
destoryed销毁结束
MVC和MVVM
MVVM是双向数据绑定,MVVM是将“数据模型数据双向绑定”的思想作为核心
MVC是单向数据绑定,需要频繁操作Dom
Flex
flex-direction 改变主轴方面,默认水平
ES6
- let,const
原型继承使用
Vue.prototype.bus = new Vue()