gpt4 book ai didi

javascript - JavaScript 中的代码组织 : MVC? 自渲染组件?

转载 作者:行者123 更新时间:2023-11-29 17:30:06 25 4
gpt4 key购买 nike

我正在构建一个非常依赖 JS 的 Web 应用程序。我说它是 JS-heavy,因为绝大多数正在进行的工作都是在客户端完成的(尽管有一些使用 AJAX 和 XMPP 与服务器来回同步)。

这是我第一次用纯 JS(使用 jQuery)构建这种规模的东西,所以我开始使用 MVC 以仿照 Rails 的方式组织我的代码。例如,如果用户单击一个按钮,将在 Controller 对象中调用一个方法,该方法从模型中提取一些数据,然后将数据传递给 View 函数。我对几乎所有事情都这样做,甚至是显示小弹出窗口等微不足道的操作。

几个月后,我觉得我没有充分利用这门语言。我真的应该像网页一样呈现我的 View 吗?

将 View 分解成组件似乎更有意义,这些组件将是 Javascript 对象/函数的实例。例如,而不是...

var itemListHTML = '<ul id="item-list"><li>item1</li><li>item2</li></ul>';
jQuery('#container').html(itemListHTML);

...我可以改为...

components.itemList.render();

所以在这里,只有一个名为itemList 的组件。由于所有数据都存储在客户端,这些组件可以立即访问创建和管理自己所需的所有数据。我想我仍然会使用 MVC,但不需要负责整个 View 的 Controller 操作。如果我想刷新 UI 的一部分,我只需调用 whateverComponentControlsThatArea.redraw() 即可重新呈现。

我敢肯定以前有人这样做过。这种代码组织方式有名称吗?关于如何实现它的任何指南或最佳实践?

最佳答案

现在有许多可用的 javascript MVC 框架
JavaScriptMVC , PureMVC , Sammy.js例如。
通常通过某种模板引擎处理 View 或 subview 的呈现。
JavaScriptMVC 有一个模块 EJS ,它以 ERB 为蓝本,我发现它非常有用。模板可以编译成函数以加快生产速度。
还有其他模板解决方案,例如 John Resig's Micro-Templatingmany more

如果为时不晚,我建议您使用这些框架之一。我现在已经在几个项目中使用了 JavaScriptMVC 并且可以推荐它(尽管文档需要一些时间来适应)

关于javascript - JavaScript 中的代码组织 : MVC? 自渲染组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com