1.vue 如何实现双向绑定? data和computed的区别? 生命周期?css
当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象全部的属性,并使用 Object.defineProperty 把这些属性所有转为 getter/setter。这些 getter/setter 对用户来讲是不可见的,可是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。每一个组件实例都有相应的 watcher 实例对象,它会在组件渲染的过程当中把属性记录为依赖,以后当依赖项的 setter 被调用时,会通知 watcher 从新计算,从而导致它关联的组件得以更新!vue
1.data属性的值,不会随赋值变量的改动而改动。若是要改变这个属性的值,则须要直接给data属性赋值,视图上对这个属性的显示才会变。webpack
2.computed属性,属于持续变化跟踪。在computed属性定义的时候,这个computed属性就与给它赋值的变量绑定了。改变这个赋值变量,computed属性值会随之改变。es6
生命周期 beforeCreted create beforeMount mounted beforeUpdated updated activated deactivated beforeDestroy destroyed errorCaptured web
2.vue router link后面加参数?vue-router
const User = {
props: ['id'],
template: '<div>User {{ id }}</div>'
}
const router = new VueRouter({
routes: [
{ path: '/user/:id', component: User, props: true },gulp
// 对于包含命名视图的路由,你必须分别为每一个命名视图添加 `props` 选项
]
})promise
2..object的方法?cookie
Object.assign() 浅拷贝less
object.defineProperty() 直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
object.toString()
object.valueof()
3.cookie和localstroage的区别?
4. http get和post的区别?
5.webpack和gerunt的区别?
6.兼容
7.同源策略
8.跨越
9.promise
10.es6的知识点
11 seajs和requirejs区别?
12 vue-router的原理 是利用h5的history 属性 hash
13 event loop 是事件循环
js是一个单线程,全部的任务都须要排队,任务分为同步任务和异步任务,同步任务进入主线程 ,作完一件事之后在作下一件事 异步是不进入主线程的,而进入【任务队列】的任务,只有任务队列通知主线程,某个异步任务要执行了,主线程才会执行,主线程从"任务队列"中读取事件,这个过程是循环不断的,因此整个的这种运行机制又称为Event Loop
14 .宏任务 微任务
先执行宏任务 在执行微任务
宏任务macrotask:
(事件队列中的每个事件都是一个macrotask)
优先级:主代码块 > setImmediate > MessageChannel > setTimeout / setInterval
好比:setImmediate指定的回调函数,老是排在setTimeout前面
微任务包括:优先级:process.nextTick > Promise > MutationObserver