作者dream1124 (全新开始)
看板Ajax
标题[问题] 请推荐 cordova 适合的mvvm框架?
时间Wed Sep 24 21:39:06 2014
大家好
小弟的公司正想为稍具雏型的 cordova 跨平台应用引入前端框架,
让各种程式码可以分离、可以降低耦合度
请问大家可以从学习难度、功能性、维护扩充的角度
分享或推荐一下适合的前端框架吗?
目前的画面元件使用 jQuery mobile 1.3.1 ,有听说和 backbone.js 很搭,
但因为各种功能相对较 angular 与 ember 简易,
听说像我们这样不是很有经验的前端开发者未必能掌握得很好,
不知道其他像 angularjs、ember.js 会更适合拿来规划架构吗?
谢谢大家~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.103.169
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Ajax/M.1411565948.A.9A8.html
1F:推 up9cloud: 不建议angular做手机,其他都很好但performance不好... 09/25 00:07
请问为什麽不建议用 angular 做手机呢? 一样是效能问题吗?
2F:→ carylorrk: 用 ionic + angularjs 开发过,必须对 data binding 下 09/25 07:41
3F:→ carylorrk: 功夫。不过基本上效能都远落後 native app 09/25 07:43
其实公司目前对行动应用的期待,就只是能离线,能跨平台使用手机硬体的网页,
在做的事也多半是 CRUD,如果效能不到无法忍受的差,那其实不会很在意
4F:推 mrbigmouth: 不建议用mvvm做cordova 09/25 08:53
5F:→ mrbigmouth: 其实我觉得jquery mobile也不算好用 对我而言就是boo 09/25 08:55
6F:→ mrbigmouth: strap的作用 直接用backbone+bootstrap就行了 09/25 08:55
谢谢,我去参考看看
※ 编辑: dream1124 (118.167.103.169), 09/25/2014 20:16:35
7F:→ shadowjohn: 我也不觉得 jquery mobile 好用... 09/25 20:23
8F:→ carylorrk: backbone 我通常还是会配合其他 two way binding... 09/25 22:16
9F:→ carylorrk: angular 很方便,写起来很像一般程式,但是不熟悉就容 09/25 22:18
10F:→ carylorrk: 易因爲背地里做太多不必要的事而造成效能落差。尤其是 09/25 22:19
11F:→ carylorrk: 语法自成一格,写起来方便但是不容易直观转换成真正的 09/25 22:20
12F:→ carylorrk: 网页操作,新手很难评估效能 impact 09/25 22:20
13F:推 up9cloud: 我是指angular从你那三个角度看都还不错,只是效能特差 09/26 04:14
修掉罗~ 谢谢大家的意见
14F:推 mrbigmouth: 要我说的话 我不喜欢任何一种在html上动手脚然後去重 09/26 08:54
15F:→ mrbigmouth: 新render网页的framework 效能只是其中一方面 09/26 08:55
16F:→ mrbigmouth: 在我看来这跟写onclick="abc();"的缺点差不多 你在deb 09/26 08:56
17F:→ mrbigmouth: bug时必须从html中去对程式码做排错.... 09/26 08:56
不好意思,小弟是前端新手,
想请问"从html中去对程式码排错"方便说得更具体一些吗?
是不是指应用程式不能完全用浏览器的 debug console 和中断点来除错呢?
谢谢
18F:→ mrbigmouth: 二来这些framework虽然的确方便 但太过自动 09/26 08:57
19F:→ mrbigmouth: 一但你需要做些什麽 需要花费的额外工夫很可能远大於 09/26 08:58
20F:→ mrbigmouth: 你之前从这些framework上得到的便利 09/26 08:59
21F:→ mrbigmouth: You don't need control everything, But you can't 09/26 08:59
22F:→ mrbigmouth: control everything 09/26 08:59
23F:推 mrbigmouth: 不要自己造轮子是很正确的道理 但请先确认你要制造的 09/26 09:01
24F:→ mrbigmouth: 是不是无敌铁金钢 09/26 09:02
25F:→ mrbigmouth: 以现在的cordova的环境 我建议还是用原始一点的工具 09/26 09:02
请问原始的工具是什麽意思呢? 尽可能只靠浏览器的 javascript api吗?
26F:推 carylorrk: 我记得之前听 firefoxOS 的人演说,他们建议在上面连 09/26 11:34
27F:→ carylorrk: JQuery 都不要碰爲妙XD 09/26 11:34
28F:推 kinanson: ionic比jquery mobile快很多啊 09/26 22:26
29F:→ carylorrk: 我也觉得光谈基本功能, ionic + angular 比 bootstrap 09/27 02:00
30F:→ carylorrk: + JQuery 快,但是没有实际测试数据不敢提 XD 09/27 02:00
有关 jQuery mobile 这部分不是小弟我可以决定的,当初接手半成品时,
已经用 jQuery mobile 开发一部分页面... 之後我只好跟着环境继续做了
※ 编辑: dream1124 (1.162.120.6), 09/27/2014 09:52:20
31F:推 mrbigmouth: 1.简单的说 HTML是很好的表达语言 但不是好的程式语 09/27 10:26
32F:→ mrbigmouth: 言 你把程式语言跟HTML混在一起就会增加维护跟debug 09/27 10:27
33F:→ mrbigmouth: 的障碍 这也是为什麽会有MVC 让视图跟语言分离的原因 09/27 10:27
34F:→ mrbigmouth: 2.原始一点的工具 简单的说就是Backbone去掉sync跟ro 09/27 10:28
35F:→ mrbigmouth: uter的部份 也就是物件导向、继承、事件驱动的那一块 09/27 10:28
36F:→ mrbigmouth: 那是纯脆由Javascript这语言的基本特性导出的设计模式 09/27 10:29
37F:→ mrbigmouth: 是效能最高也最贴近语言本身的工具 而且绝不会有跨平 09/27 10:29
38F:→ mrbigmouth: 台的问题 09/27 10:30
39F:→ mrbigmouth: 所以我会建议在cordova上用Backbone然後router跟sync 09/27 10:30
40F:→ mrbigmouth: 的部份自己重写覆盖 Backbone是有提供接口让你盖的 09/27 10:30
41F:推 matrixki: knockoutJS 09/28 00:26
42F:→ carylorrk: angular 并没有把程式逻辑和表达混在一起吧?比较类似 09/30 13:46
43F:→ carylorrk: Django 那种 MTV 架构,也就是MVC 把大部分 C 处理掉 09/30 13:50
44F:→ carylorrk: template language 的目的是爲了解决 HTML 原生不适合 09/30 13:50
45F:→ carylorrk: 动态内容的显示的问题 09/30 13:50
46F:推 mrbigmouth: 我个人是觉得angular的template已经超出template lang 09/30 14:01
47F:→ mrbigmouth: uage的定义了 你需要用attr的方式去处理if each指定 09/30 14:02
48F:→ mrbigmouth: controller跟scope等等 就是在用html的表达示语言去 09/30 14:03
49F:→ mrbigmouth: 处理应该由程式语言去处理的东西 09/30 14:03
50F:→ carylorrk: 指定 controller 是因爲不像 django 是用设定档和档案 09/30 17:45
51F:→ carylorrk: 结构作爲判断吧。如果想要的话使用一致性的命名和 09/30 17:46
52F:→ carylorrk: organization 其实是差不多的。不过的确有太多特性会让 09/30 17:47
53F:→ carylorrk: 新手滥用了。尽管官方也一直强调 MVC 和 testing XD 09/30 17:47
54F:→ carylorrk: 就像是 PHP 虽然也有不错的 framework 和架构模式,但 09/30 17:48
55F:→ carylorrk: 大多数新手写出来的都是混在一起的怪兽XD 09/30 17:49
56F:→ carylorrk: 有点像是加法和减法吧,一个是提供很丰富的功能,但是 09/30 17:49
57F:→ carylorrk: 写多了会去芜存菁。一个是提供 core,慢慢加上自己需要 09/30 17:50
58F:→ carylorrk: 的功能。 09/30 17:50