css
css盒模型
css常见长度单位
em rem区别
未知宽高居中
css画三角形
sass和less
如何定义一个变量
sass:$ less:@
继承、混合
js基础
js反转字符串
箭头函数和普通函数的区别
数组去重
数组reduce,filter,
防抖和节流
promise
promise.all
只要任何一个输入的promise的reject回调执行或者输入不合法的promise就会立即抛出错误,并且reject的是第一个抛出的错误信息。
Promise.any
只要其中的一个 promise
成功,就返回那个已经成功的 promise
Promise.race
一旦迭代器中的某个promise解决或拒绝,返回的 promise就会解决或拒绝
vue
生命周期
vue组件通讯
event bus
自定义v-model
自定义指令
vue2.0和3.0响应式区别
2.0
原理
Object.defineProperty对属性的利用setter,getter读取,修改进行拦截
存在的问题
- 新增属性、删除属性,视图不能刷新,必须用delete移除
- 直接通过下标修改数组,视图不刷新,只能通过
this.$set(this.arr,0,newValue)
或者this.arr.splice(0,1,newValue)
3.0
原理
- 通过Proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写、属性的添加、属性的删除
- 通过Reflect(反射):对被代理对象的属性进行操作
vue-router
前端路由的两种模式及区别
hash和history两种模式。
hash模式
hash 就是指 url 尾巴后的 # 号以及后面的字符,也称作锚点,本身是用来做页面定位的,她可以使对应 id 的元素显示在可视区域内。
由于 hash 值变化不会导致浏览器向服务器发出请求,而且 hash 改变会触发 hashchange 事件(hashchange只能改变 # 后面的url片段);更关键的一点是,因为hash发生变化的url都会被浏览器记录下来,从而你会发现浏览器的前进后退都可以用了,所以人们在 html5 的 history 出现前,基本都是使用 hash 来实现前端路由的。
history模式
hash 能兼容到IE8, history 只能兼容到 IE10;
histrory没有#号,url更简洁hash 的传参是基于 url 的,如果要传递复杂的数据,会有体积的限制,而 history 模式不仅可以在url里放参数,还可以将数据存放在一个特定的对象中。
修改历史状态包括了 pushState
, replaceState
两个方法
导航守卫
router.beforeEach
VueX
五个核心概念
State,Getter,Mutations,Actions,Modules,
Mutations和Actions如何触发
commit和dispatch