如何在web单页应用程序中更好地组织多个视图
How to better organize multi-views in a web single page app?
假设我有很多视图在我的单页应用程序。这意味着,我把一些视图在一个div和显示这个或那个视图取决于用户的操作。所以,我通常一次只展示一个。例如,我有这些视图- 仪表板, 设置, 条目, 条目详细信息。
根据应用的当前状态,这些视图中有一个是可见的,而另一个是不可见的。当我以这种方式仪表板> 条目> 条目详细信息,然后编辑一些条目详细信息并单击保存或返回按钮,我希望应用程序回到条目。但是,如果我在仪表板上有一个链接,例如指向最新编辑的条目,我可以这样做dashboard> 条目详细信息,在这种情况下,我想通过单击保存或返回按钮返回仪表板。
如果使用更深的视图路径,这种情况会变得更加复杂。现在我像这样管理它——当一个负责视图切换的按钮被点击时,变量state
被更改为from_dashboard_to_entries
之类的东西。我监听该变量的变化,然后根据state
变量值从另一个函数进行所有视图切换。这样我就必须手动定义所有可能的场景并测试所有可能的情况组合。现在这种方法运行得很好,但我担心更深或更长的视图序列。
我的想法是以某种方式在数组或其他东西中创建视图的历史,但我不清楚如何做得更好。
根本不用担心源视图—您不必知道它就可以切换到目标视图。如果你想要一个历史记录,而不是手动存储它,考虑使用HTML5历史API,最好是一个包装库(例如history .js)。
更确切地说,我们应该在改变应用程序状态的同时设置视图。这可以优化初始应用程序的启动时间,而不是在启动时加载所有视图,并为按需加载提供了一种方式。
相关文章:
- 有没有更好的动手、具体的方法来学习Javascript
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 设置嵌套对象属性的更好方法
- 您有更好的动态方式来缩短复杂的代码jquery吗
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- Backbone js代码气味-嵌入子视图的更好方法
- 在主干视图中使用 mixins - 哪种是更好的方法
- 使用 Knockoutjs 显示视图模型中数据的更好方法
- 在 MVC3 视图中使用嵌入式 JavaScript 还是单独的 .js 文件更好
- 更好的方法是使用assets/javascript/*.js或*.js.erb视图中的ajax调用
- 将脚本放置在layout视图或每个视图中更好
- Backbone js路由器-组织视图的更好方式
- 如何在web单页应用程序中更好地组织多个视图
- 组合优于继承,这是向视图添加额外功能而不诉诸继承的更好方式
- 添加DOM视图太慢了,需要一种更好的方法来缓存一次视图并重用它供以后使用
- 在RTL模式下获得可滚动DIV的视图的更好方法