vuejs切换视图同时保持状态

http://cn.vuejs.org/guide/components.html#动态组件

动态组件

多个组件可以使用同一个挂载点,然后动态地在它们之间切换。使用保留的 元素,动态地绑定到它的 is 特性:

new Vue({
el: 'body',
data: {
currentView: 'home'
},
components: {
home: { /* ... */ },
posts: { /* ... */ },
archive: { /* ... */ }
}
})
<component :is="currentView">
<!-- 组件在 vm.currentview 变化时改变 -->
</component>

keep-alive

如果把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。为此可以添加一个 keep-alive 指令参数:

<component :is="currentView" keep-alive>
<!-- 非活动组件将被缓存 -->
</component>

路由

对于单页应用,推荐使用官方库 vue-router。详细请查看它的文档。

如果你只需要非常简单的路由逻辑,可以这么做,监听 hashchange 事件并使用动态组件:

示例:

<div id="app">
<component :is="currentView"></component>
</div>
Vue.component('home', { /* ... */ })
Vue.component('page1', { /* ... */ })
var app = new Vue({
el: '#app',
data: {
currentView: 'home'
}
})

// 在路由处理器中切换页面

app.currentView = 'page1'

利用这种机制也可以非常容易地配合其它路由库,如 Page.js 或 Director。

最新文章

  1. jQuery判断网页中的id是否有重复的
  2. dojo/dom-geometry元素大小
  3. Javascript setTimeout 带参数延迟执行 闭包实现
  4. Node.js——Async
  5. C#中判断文件夹中存在某个txt文本
  6. Team Homework #2 Decide the roles of each team member ——IloveSE
  7. Cython: 快速入门
  8. HTTP响应代码
  9. html base2
  10. react图工具集成
  11. 解决Ubuntu19.04下网易云音乐打不开的问题
  12. springboot07-security
  13. android studio相关配置
  14. NTFS(Windows)、ext4(RHEL6)和xfs(RHEL7)文件系统的误删除恢复和备份
  15. Java循环中try...finally...遇到continue
  16. java AOP使用注解@annotation方式实践
  17. HDU 1569 - 方格取数(2) - [最大点权独立集与最小点权覆盖集]
  18. 渗透测试工具之sqlmap
  19. Python - __name__ == &#39;__main__&#39;
  20. 如何查看sonarqube的版本

热门文章

  1. Oracle 服务手动启动关闭
  2. Clover 资源管理器 http://cn.ejie.me/
  3. 21)pom 中的缺省值(default properties)
  4. MOTION-MATCHING IN UBISOFT’S FOR HONOR翻译
  5. Android AbsListView 的item动画类库 —— JazzyListView
  6. 第七章 内存管理单元MMU介绍
  7. border-width和border其它属性配合实现的小三角形标签效果
  8. 从RAM新建QIcon对象 / Create a QIcon from binary data
  9. ABP框架详解(二)AbpKernelModule
  10. 学习Word2vec