我用了body {改背景色的css}
结果别的页面也变了。。。。。
箭头指的地方是用最外层容器填充了背景色的
https://router.vuejs.org/zh-c...
使用钩子 手动修改document.body.style
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<div id="app"></div>
<template id="main">
<div id="app">
<ul>
<li><router-link to="/">Home</router-link></li>
<li><router-link to="/1">Page1</router-link></li>
<li><router-link to="/2">Page2</router-link></li>
</ul>
<router-view></router-view>
</div>
</template>
<script src="http://cdn.bootcss.com/vue/2.3.2/vue.min.js"></script>
<script src="http://cdn.bootcss.com/vue-router/2.5.3/vue-router.min.js"></script>
<script>
const Home = { template: '<div>Home</div>' }
const Page1 = {
template: '<div>Page1</div>',
beforeRouteEnter(to, from, next) {
window.document.body.style.backgroundColor = 'red';
next();
},
beforeRouteLeave(to, from, next) {
window.document.body.style.backgroundColor = '';
next();
}
}
const Page2 = {
template: '<div>Page2</div>',
beforeRouteEnter(to, from, next) {
window.document.body.style.backgroundColor = 'blue';
next();
},
beforeRouteLeave(to, from, next) {
window.document.body.style.backgroundColor = '';
next();
}
}
const router = new VueRouter({
routes: [
{ path: '/', component: Home },
{ path: '/1', component: Page1 },
{ path: '/2', component: Page2 }
]
})
new Vue({
router,
template: '#main'
}).$mount('#app')
</script>
</body>
</html>
9 回答1.7k 阅读✓ 已解决
6 回答946 阅读
3 回答1.3k 阅读✓ 已解决
2 回答858 阅读✓ 已解决
4 回答950 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答858 阅读
最简单的方法