2019/08/14
- 页面刷新问题
this.$router.go(0)
location.reload()
- 路由跳转判定
beforeRouteEnter(to,from,next){
next(vm =>{
if(from.path === '/**'){
}else{
}
}
}
const Foo = {
template: `...`,
beforeRouteEnter (to, from, next) {
// 在渲染该组件的对应路由被 confirm 前调用
// 不!能!获取组件实例 `this`
// 因为当钩子执行前,组件实例还没被创建
},
beforeRouteUpdate (to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
// 可以访问组件实例 `this`
},
beforeRouteLeave (to, from, next) {
// 导航离开该组件的对应路由时调用
// 可以访问组件实例 `this`
}
}
- 等待事件
//定时器
let clock = window.setInterval(() => {
if(this.** === 100){
window.clearInterval(clock)
...
}
},100)
//sleep() 非同步
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
sleep(500).then(() => {
// 这里写sleep之后需要去做的事情
})
//同步执行
(async function() {
console.log('Do some thing, ' + new Date());
await sleep(3000);
console.log('Do other things, ' + new Date());
})();
//参考
sleep(delay) {
var start = (new Date()).getTime()
while ((new Date()).getTime() - start < delay) {
continue
}
}
- JSON.stringify()