答案 0 :(得分:19)
不确定您的时间表和资源,但是当我尝试在多个框架/环境之间做出决定时,我会继续尝试快速构建原型。即使它只是一个或两个主要功能,我发现世界上所有的研究和文档都不会与实际尝试用工具构建东西相匹配。我说每个人都要花一天时间,看看你能走多远。这将为您提供一个非常好的指示,说明哪些工具可以胜任这项工作并让您感觉最舒服。
答案 1 :(得分:6)
meteor现在风靡一时(most starred full-stack JavaScript framework on GitHub和Meteorpedia是一个用Meteor编写的wiki引擎。
launch video会让你迷惑1:28。
它与UI无关,并且已经使用Bootstrap和Famo.us进行了广泛测试。它还可以从相同的代码库生成移动应用程序。
答案 2 :(得分:4)
我建议首先提出项目的特定UI要求。您尝试过哪些框架可以让您进行旋转?
就个人而言,我进入了ExtJS开发,因为我工作的项目需要大量的控件/小部件自定义。 ExtJS有很多开箱即用,可以随时扩展,组合或用于您的业务所需的任何怪物。
ExtJS 4还允许您“设计”用户界面以进一步自定义外观。
如果您不熟悉JavaScript,并且熟悉Java,您甚至可以研究服务器端解决方案,例如GWT,JSF,甚至Vaadin
答案 3 :(得分:1)
您选择的框架可能不会像您想象的那样限制您的UI选择。 This recent Henri Bergius article about decoupling content management比我更好地说明了这一点 - 顺便提一下,链接到一个非常甜美的纯JavaScript(与框架无关)in-place content editor。
答案 4 :(得分:1)
你并不孤单!
VanillaJS和 Ampersand ..是更简单,更模块化的JavaScript的重要驱动器的很好的例子。
甚至还有一个Book。
简化由es6功能评分不足驱动:Modules和SystemJS实施标准。它甚至可以在非es6系统上使用。
那有多酷!
答案 5 :(得分:1)
我会说你在选择候选人时错了,因为你忽略了 Angular 和 Ember 两者都比其他任何框架更适合。
您所谈论的大部分内容(导航的几个侧栏,单页应用)都是路由功能,或者前端如何解释您的URL导航栏中的文本。
Angular.js和Ember都有出色的路由器,无需额外代码即可完成所需的一切。
为了您的利益,这里是Angular中可用于创建单页wiki的功能的快速细分
网站结构本身
Angular有一个名为UI路由器的惊人库,可以让你创建自定义导航并建立一个SEO友好的结构来揭示你的内容。多个视图也允许使用顶部工具栏。
Ui路由器教程: http://cacodaemon.de/index.php?id=57
WYSIWYG编辑
Angular是基于实时双向绑定构建的(当你在某处更改某些内容时,它会自动在其他地方进行更改。)因此,它包含许多适用于此类编辑器的功能。已经制作了一些好的,你只需要实现它们。
图表和其他整洁的东西
Angular指令旨在执行诸如创建可重用的Chart组件之类的操作。它们与Wordpress Widgets并不完全不同。其中许多已经开发出来,可以放入你的Angular项目中。
http://www.sitepoint.com/creating-charting-directives-using-angularjs-d3-js/
关于Ember,我不太了解它,所以我不能说出它的特殊功能。
答案 6 :(得分:0)
关于Backbone的一个建议,如果你决定使用它,你应该选择Marionnete,因为它是Backbone但具有更好的架构结构和更多的自我意识(我个人觉得Backbone没有设置任何指导和这感觉就像大型应用程序的缺点一样)。
我使用了几个月来组合不同的js库并且不像其他框架那样妨碍你,并且消息管道是一个非常好的方法,可以通过应用程序连接组件,但保持它们分离。 / p>
在这里,你有一个很好的演讲让我决定:https://www.youtube.com/watch?v=qWr7x9wk6_c
在这里你有一个演示原型,它还有拖放元素和其他连接的js库。我很乐意听到您对我的代码的看法,因为我有1.5年的网络开发工作......我还是一个新手:https://github.com/Drasky-Vanderhoff/marionette-demo/
关于Knockout,如果你想与你已经拥有的内容进行互动并且你不会不断地与后端连接,那真是太好了。我用它工作了6个月,最后我需要使用很多其他的js库进行路由;加上我最终重复了Backbone和其他JS Frameworks最终拥有的很多结构。我要说的是,它根本不会妨碍你成为一个工具,而不是一个约束。这也差不多一年前,所以有些事情发生了变化。
有一件事,如果你发现Knockback(Knockout + Backbone)......避免使用它,那么文档就没那么好了,它会花费你更多的时间来学习它。如果你想要它,首先制作一个快速原型,看看你是否想要它。