用于pushstate “hijax”的Javascript框架

Javascript framework for pushstate "hijax"

本文关键字:Javascript 框架 hijax pushstate 用于      更新时间:2023-09-26

我们所有的应用程序都是php mvc,并且在客户端顶部有一个非常简单的js行为层。我们希望更多地构建javascript,并停止请求"片段"来执行简单的行为(例如,到处加载不同的jquery插件)。我们不使用javascript MVC框架,并为我们的新应用程序寻找最适合的解决方案。

最吸引人的解决方案之一是像Twitter一样为我们保留渲染服务器端。他们称之为"Hijax +服务器端渲染"。我们不希望在javascript中拥有一个完整的mvc框架,但博客中的这些引用对我们非常有吸引力:

通过契约,我们的组件将自己附加到单个 DOM 节点,通过委托侦听事件,在 DOM 上触发事件,这些事件通过 DOM 事件冒泡广播到其他组件。[...]其次,我们所有的组件都是使用 AMD 定义的。

我们一直在尝试构建我们自己的东西,但是如果没有高水平的JavaScript专业知识,我们就无法在这方面走得太远。像jquery-pjax这样的东西对于非常简单的情况似乎也是一个很好的解决方案。

我们正在寻找:

  1. 一个UI/数据隔离,将XHR与DOM巧妙地耦合
  2. 在一起
  3. 事件驱动的 UI,因此开发人员可以将侦听器附加到所有类型的 DOM 对象

有没有类似javascript框架的东西?随着pushState越来越受到关注,我希望能有一些东西可用。有什么想法吗?

您可能需要

查看历史记录.js和Amplifyjs(可能还有用于某些组件组合的microjs)

我将尽我所能回答你的问题。 话虽如此,我要说你的问题非常广泛,相当模棱两可。 你还没有成功地传达你在 JavaScript 库中寻找什么。 您提到了许多不同的主题,这些主题都很复杂,每个主题的存在都是为了在客户端开发中服务于特定的目的。 虽然所有这些概念可能在野外实现,但没有一个明确的答案来解决您的所有问题。

我将从您的第一点"UI/数据隔离"开始。 这个概念实际上是关于关注点的分离。 您希望 UI 与数据分开存在。 您在这里真正要寻找的是 HTML 以反映数据模型的当前状态。 您还希望自动为您执行此操作。 这是具有 MVC 设计模式的非常常见的工作流。 JavaScript有几个选项可供您使用:Backbone.js,AngularJS,EmberJS,并且列表还在继续。

根据我使用很多这些不同框架的个人经验,我会推荐Backbonejs,因为它具有灵活和轻量级的性质。 在Backbone中,我们有一个可以直接绑定到数据模型的"视图"的概念。 它还通过其路由机制支持您想要的"pushSate"概念。

"事件驱动的UI"部分可以由任意数量的不同JavaScript库处理。 jQuery可能是将事件附加到"各种dom元素"的最流行的库。 Backbone.js还允许使用其View对象轻松设置事件委托(通过事件冒泡)。

简而言之,如果你想为你的JavaScript添加结构......这真的取决于你想要什么。 对于简单的事情,一点点手工制作的jQuery就可以了。 如果你真的想要一个更具MVC风格的应用程序,并且有增长的潜力,像Backbone这样的MVC框架是要走的路。