- 主题:[求助]现在入门应该从什么框架开始比较好?
【 在 muser (负尽千重罪,练就不死心) 的大作中提到: 】
: 我不知道为什么双向绑定会evil....
say scope.inputX is bound to dom, then it means the value of scope.inputX
can change at any time. essentially a "volatile" modifier in c. such
things can break at any time, because you cannot tell what its value is
without fetching from it; if it changed while you are computing it is hard
to tell how your computation will continue.
--
FROM 183.195.251.*
fundamental libraries (e.g. dom, node api) provides async by callback,
thus requires code to be organized around first-class functions.
the js language lacks class-based inheritance.
1 = you have to work with many functions
2 = you cannot work with many classes
1+2 = you have to write many functions working with dumb objects.
this is where fp wins.
【 在 muser (负尽千重罪,练就不死心) 的大作中提到: 】
: so why fp wins?
--
FROM 183.195.251.*
【 在 muser 的大作中提到: 】
: 老兄,惭愧惭愧!你说了这么多,我估计着我没理解多少。 :) 没有前台上下过功夫,感受不深啊。
: 对我个人来说,所谓双向绑定,就是“联动”。后台也许是些callback Listener在处理。
: 我简单的认为,看到的和内部数据是一回事,是件好事。
: ...................
双向数据绑定的 Evil 主要体现在以下三个方面:
1. 性能。在 Angular 1.x 中,每个页面不能有超过 2000 个绑定,否则会有性能问题。
2. 复杂组件之间数据的误修改。
3. 由 2 导致的难以 debug。
--
FROM 111.161.114.*
这个理由好。不过,js不是单线程的吗?在一个循环结束前,新的数值是不是不会进来?
【 在 XeCycle 的大作中提到: 】
: if it changed while you are computing it is hard
to tell how your computation will continue.: ...................
--
FROM 104.132.53.*
另外,在传统gui里,是通过锁定界面来防止运算过程中的数值改变。angular加个功能以指定某个时段内某dom节点disabled应该也很容易吧?
【 在 XeCycle 的大作中提到: 】
:
: say scope.inputX is bound to dom, then it means the value of scope.inputX
: can change at any time. essentially a "volatile" modifier in c. such
: ...................
--
FROM 104.132.53.*
1是个具体实现的问题
至于2, 我不明白。这是在说没有命名空间吗?
【 在 zhuomuniaohk 的大作中提到: 】
:
: 双向数据绑定的 Evil 主要体现在以下三个方面:
: 1. 性能。在 Angular 1.x 中,每个页面不能有超过 2000 个绑定,否则会有性能问题。
: ...................
--
FROM 104.132.53.*
问题是没有这个API,看起来也很难做的样子。
我今天就碰到一个BUG,在$watch()调用的代码里面从服务器取数据,改变了原来的值,死循环了。不过这个BUG归根到底是自己写错。
虽然说fp大法好,但是怎么实践也是个问题。
【 在 muser (负尽千重罪,练就不死心) 的大作中提到: 】
: 另外,在传统gui里,是通过锁定界面来防止运算过程中的数值改变。angular加个功能以指定某个时段内某dom节点disabled应该也很容易吧?
--
FROM 211.162.33.*
呃,今年我还犯过一个changedListener里面改数据结果又调了一次自己的错误........
【 在 hgoldfish 的大作中提到: 】
: 问题是没有这个API,看起来也很难做的样子。
: 我今天就碰到一个BUG,在$watch()调用的代码里面从服务器取数据,改变了原来的值,死循环了。不过这个BUG归根到底是自己写错。
: 虽然说fp大法好,但是怎么实践也是个问题。
: ...................
--
FROM 104.132.53.*
angular的数据绑定本质上就是个观察者模式的实现。松散的耦合本身容易触发过度的事情传播。
其实还是js太弱。。在别的语言里面有 getter/setter/property 这些概念拦截数据访问,但是js没有,要判断一个数据有没有被修改的唯一方法是把旧的数据保存起来,$watch()每次都要拿旧的数据对比一下。对比还得分===还是== 前者只是简单比较是不是原来的对象,经常都要悲剧。
【 在 muser (负尽千重罪,练就不死心) 的大作中提到: 】
: 1是个具体实现的问题
: 至于2, 我不明白。这是在说没有命名空间吗?
--
FROM 211.162.33.*
es5就有getter/setter了。
ie9以上都支持。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: angular的数据绑定本质上就是个观察者模式的实现。松散的耦合本身容易触发过度的事情传播。
: 其实还是js太弱。。在别的语言里面有 getter/setter/property 这些概念拦截数据访问,但是js没有,要判断一个数据有没有被修改的唯一方法是把旧的数据保存起来,$watch()每次都要拿旧的数据对比一下。对比还得分===还是== 前者只是简单比较是不是原来的对象,经常都要悲
--
FROM 183.134.47.*