【问题标题】:Implementing requirejs and client-side templating in existing codeigniter hmvc application在现有的 codeigniter hmvc 应用程序中实现 requirejs 和客户端模板
【发布时间】:2013-05-23 12:14:59
【问题描述】:

我们从事 codeigniter hmvc 项目已经有一段时间了,它已经发展成为许多后端模块和控制器。对于前端,我们一直在应用常规的 jQuery 和插件方法以及用于前端交互和 Ajax 相关任务的内联脚本。我们还使用 JS 中的 HTML 字符串作为我们的模板方法。

但是由于现在应用程序已经变大了,我们需要为客户端代码采用模块化方法,同时实现一个构建系统来优化 JS 代码。 在我们的研究中,我们发现了一些可以帮助我们开始管理代码的候选者。我们将 requirejs 用于依赖管理和我们正在考虑使用 out of handlebars/moustache/dust.js 的模板。

但是,似乎大多数使用 require 和模板的应用程序都是基于主干的,并且基本上是一页 Web 应用程序。那么,我们如何实现前端模块化和模板作为我们已经工作(并且正在增长)的 Codeigniter hmvc 应用程序的一部分?

【问题讨论】:

  • 我需要在每个页面中包含 main.js 吗?这是要走的路吗?

标签: javascript codeigniter requirejs client-side-templating web-frontend


【解决方案1】:

RequireJS 是管理代码库的好选择。很难就其他技术给出好的建议,这取决于您喜欢的编码风格、需求和 JavaScript 专业知识。

一定要自己比较不同的框架,看看哪个更舒服。一些候选者包括 KnockoutJS、AngularJS、EmberJS。

是的,您需要在每个页面上的 require.js 脚本的 data-main 属性中引用 main.js(如果您不创建单页应用程序)。将其视为程序的入口点。

【讨论】:

  • main.js 除了配置(路径和垫片)还需要包含什么。我不能在其中编写任何特定于应用程序的代码,因为它要包含在每个页面中,因此代码应该是不同的。我对吗?我需要为每个视图编写不同的 main.js 吗?我应该如何将它集成到当前的应用程序中?
  • 如果我有不同的入口点,我还能在构建阶段使用 require 优化器吗?
  • 这取决于您的应用程序架构,是具有单个 main.js 还是多个。它不必命名为 main.js。单主肯定有优势,然后根据您所在的 URL 有不同的逻辑。这样你就有了单一的构建路径。如果您有不同的入口点,您仍然可以针对每个构建进行优化。但是这些文件不会被缓存,并且每个页面都会请求不同的文件。
  • 所以我可以包含两个脚本,一个包含所有配置和垫片的 main.js。第二个带有页面特定应用程序代码。最后我加入所有应用程序特定文件以创建一个应用程序文件?
猜你喜欢
  • 2015-07-16
  • 1970-01-01
  • 2013-12-03
  • 2019-05-10
  • 2012-08-31
  • 1970-01-01
  • 2015-02-24
  • 2017-06-11
  • 2022-06-16
相关资源
最近更新 更多