//优先级 问题
function app() {
setTimeout(()=>{ console.log(‘1-1‘); Promise.resolve().then(()=>{ console.log(‘2-1‘) }) }); console.log(‘1-2‘); Promise.resolve().then(()=>{ console.log(‘1-3‘); setTimeout(()=>{ console.log(‘3-1‘) }) }) } // 1-2 、 1-3 、 1-1、 2-1、 3-1
为什么组件中的 data 必须是一个函数?
组件是可复用的vue实例,一个组件被创建好之后,就可能被用在各个地方,而组件不管被复用了多少次,
组件中的data数据都应该是相互隔离,互不影响的,基于这一理念,组件每复用一次,data数据就应该被复制一次,
之后,当某一处复用的地方组件内data数据被改变时,其他复用地方组件的data数据不受影响。
计算属性和watch区别
computed计算属性是用来声明式的描述一个值依赖了其它的值,当所依赖的值或者变量改变时,计算属性也会跟着改变;只是需要动态值,那就用计算属性
watch 监听的是已经在 data 中定义的变量,当该变量变化时,会触发 watch 中的方法;
组件间的通信
父子 props/event $parent/$children ref provide/inject
兄弟 bus vuex
跨级 bus vuex provide.inject
nextTick()理解
在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后,立即使用这个回调函数,获取更新后的 DOM。
Router实现原理应用技术
location.hash和window.history
目前前端路由的实现方法主要有两种方法,location.hash和window.historyHistory.pushState() 按指定的名称和URL(如果提供该参数)将数据push进会话历史栈,数据被DOM进行不透明处理;
History.replaceState() 按指定的数据,名称和URL(如果提供该参数),更新历史栈上最新的入口。这个数据被DOM 进行了不透明处理。
理解Vue中的Render渲染函数
原文:https://www.cnblogs.com/dekui/p/14638757.html