<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<ul>
<li><a href="" @click.prevent="page = 'home'">站点主页</a></li>
<li><a href="" @click.prevent="page = 'news'">新闻中心</a></li>
<li><a href="" @click.prevent="page = 'about'">关于我们</a></li>
</ul>
<keep-alive include="home,news" :max="2">
<component :is="page"></component>
</keep-alive>
</div>
<script src="./vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
page: 'home'
},
components: {
'home': {
template: `<div id="home"><h1>站点主页</h1><p><input type="text"></p></div>`
},
'news': {
template: `<div id="news"><h1>新闻中心</h1><p><input type="text"></p></div>`
},
'about': {
template: `<div id="about"><h1>关于我们</h1><p><input type="text"></p></div>`
}
}
})
</script>
</body>
</html>
动态组件-动态组件的钩子函数
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<ul>
<li><a href="" @click.prevent="page = 'home'">站点主页</a></li>
<li><a href="" @click.prevent="page = 'news'">新闻中心</a></li>
<li><a href="" @click.prevent="page = 'about'">关于我们</a></li>
</ul>
<keep-alive>
<component :is="page"></component>
</keep-alive>
</div>
<script src="./vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
page: 'home'
},
components: {
'home': {
activated () {
console.log('站点主页被切换进来啦!')
},
deactivated () {
console.log('站点主页被切换出去啦!')
},
template: `<div id="home"><h1>站点主页</h1><p><input type="text"></p></div>`
},
'news': {
activated () {
console.log('新闻中心被切换进来啦!')
},
deactivated () {
console.log('新闻中心被切换出去啦!')
},
template: `<div id="news"><h1>新闻中心</h1><p><input type="text"></p></div>`
},
'about': {
activated () {
console.log('关于我们被切换进来啦!')
},
deactivated () {
console.log('关于我们被切换出去啦!')
},
template: `<div id="about"><h1>关于我们</h1><p><input type="text"></p></div>`
}
}
})
</script>
</body>
</html>