JavaScript 框架,用于构建动态但服务器端驱动的前端
JavaScript framework for building out a dynamic but server-side driven frontend
我正在考虑构建一个或多或少包含多个嵌套列表的小应用程序,并且选择每个列表中的各种项目将过滤其他嵌套列表的内容。
列表一
- 苹果
- 电话
- 苹果手机
- 计算机
- Macbook Air
- 三星
- 电话
- 银河 S
- 电话
清单二
- 百思买
- 密歇根州安娜堡 伊
- 利诺伊州芝加哥
- 沃尔玛
- 密歇根州兰辛
如果用户点击"Apple> Phone",服务器将在列表二中找到关联的条目,并将列表二更新为仅显示"百思买"(假设百思买是唯一销售苹果制造的手机的商店)
我的问题是,有没有人建议我应该使用什么前端JS库来构建它?这将基于来自服务器的 AJAX JSON 响应更新 DOM(列表)。
我看了一下KnockoutJS,但试图为每个列表创建一个viewModel,并通过KnockoutJS映射库更新它,事情似乎变得混乱。
我正在考虑简单地使用 jQuery,但我不太喜欢用它构建 DOM 的大部分(它似乎很快就会变得丑陋)。
我想避免的一件事(以及我为什么要看 KnockoutJS)是我不喜欢在代码中编写标记。我喜欢在"HTML"中维护我的标记,并通过框架将JS数据"绑定"到这些元素的想法。
另外,我希望将jQuery用于所有视觉"绒毛",事件绑定等。
谢谢
我最终选择了Backbone.js [1]
就绑定而言.js它似乎比 Knockout 更灵活一些。我正在使用骨干支持的JS模板来构建每个列表级别。这需要一些代码,但 Backbone 非常灵活(因此是代码位)。我确信这在许多其他 JS 框架中是可能的,但我认为我已经能够取得更多进展 w 骨干是我不需要深入了解框架/API/复杂性来使其工作 - (我的)代码可能更冗长,但正因为如此,它更容易拼凑出一切是如何工作的。
[1] http://backbonejs.org/
这更像是一个部分答案,试图解决"维护...'HTML'中的标记"。我会在 HTML 中创建一个通用菜单项,它可以作为每个菜单项的模板,如下所示:
<li id="menuItemTemplate" class="menuItem">
<span class="menuItemText"></span>
<ul class="submenu"></ul>
</li>
这不会在你的页面上的可见位置;它只是为每个菜单项插入的 HTML。然后,当您添加菜单项时,您的 JavaScript 将负责在列表中添加任意数量的menuItem
元素。就HTML操作而言,JavaScript只需要做一些事情,比如添加id
或class
属性来组织或设置数据样式,以及添加每个项目的文本内容。示例实现可能如下所示(我喜欢jQuery):
function loadMenuItem(text, parentId) {
// Grab the template
var newItemHtml = $("#menuItemTemplate")[0];
// Set its id to something unique
$(newItemHtml).attr("id", getNextId());
// Set the text
$(newItemHtml).find("span.menuItemText").html(text);
// Put it in the clicked menu
$(parentId + "ul.submenu").append( newItemHtml );
}
最后,我不会编程你的项目,不过。我只能给你我的偏好。如果这需要花费大量时间,我想说最好的办法是尝试所有听起来很有趣的框架(显然是小规模的),以了解您喜欢在每个框架中开发 DOM 转换应用程序的方式。这会让你更好地了解你会更喜欢哪个,并向你介绍不同的框架。
不是这个问题的直接答案 - 仍然值得看看Kendo UI MVVM
- 使用剑道 UI 的 MVVM 只需三个简单的步骤
- 剑道 UI Web MVVM
- 了解 MVVM – JavaScript 开发人员指南
- 剑道 UI 演练中的 MVVM
- 构建单页应用程序 – 第 7 部分 – MVVM 和 KnockoutJS
- 如何使用skip参数使用angular ui引导进行服务器端分页
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 将表单数据提交到服务器端
- 使用ajax的服务器端分页&jQuery
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 使用FormData上传AJAX图像;t在服务器端显示图像
- React路由器服务器端渲染和ajax获取数据
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- Meteor如何运行服务器端python脚本
- CORS-服务器端cookie没有保存在chrome浏览器上
- 加载服务器端渲染的React组件后执行脚本
- React服务器端渲染在前端重新渲染
- 我可以将初始动态数据从基于RESTful api的服务器端传递到基于角度的前端页面吗
- JavaScript 框架,用于构建动态但服务器端驱动的前端
- 什么是服务器端java脚本?我们可以在服务器端使用java脚本吗?对于前端开发人员来说,需要知道哪种类型的java脚本
- 节点服务器端执行骨干删除命令,但前端未触发同步事件