一.组件间通讯
1.props/$emit
父组件A通过props的方式向子组件B传递,B to A 通过在 B 组件中 $emit, A 组件中 v-on 的方式实现。
2.$emit/$on
通过一个空的Vue实例作为中央事件总线,用它来触发事件和监听事件,轻量地实现了任何组件间的通信
3.vuex
4.$attrs/$listeners
当一个组件没有声明任何 prop 时,可以通过 v-bind="$attrs" 传入内部组件
二.Promise的作用
Promise是一种常用的异步解决方案,解决回调地狱的问题。
三.map与set的区别
1.Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构。
2.set是以 [value]的形式储存元素,字典 是以 [key:value] 的形式储存
四.构造函数与普通函数的区别
1.命名方式
构造函数名称通常首字母要大写
普通函数名称首字母要小写, 使用驼峰命名方式。
2.this的指向问题
构造函数的this会绑定到创建的对象实例上;
普通函数的this则属于此函数的调用者;
3.调用方式的不同
构造函数需要使用new运算符调用, 如果构造函数没有参数可以省略小括号, 比如new Object;
普通函数的调用不需要new 运算符, 而且必须有小括号。比如: function(){};
五.hash与history的区别
直观区别:hash模式url带#号,history模式不带#号。
如果后台没有做相应配置,history页面会在再次刷新的时候,报404错误;
另加一道:
call和apply的作用和区别:
作用:都是改变this的指向。
区别:call() 接收的参数是逐一列出来的
apply() 接收的是参数数组