@
ahonn ( 1 )拿 Vue 的 template 跟 JSX 去比,这两者的实现完全是不同的,没有可比性,何来客观?
vue 在脱离 compiler 的情况下一样是把 template 直接解析成 render 函数里的嵌套调用实现的 为什么叫没有可比性
compiler 和 babel 不能比较么
更何况无论是 map 还是三目都会导致 html 和函数混写,如果你非要说这也叫整洁那我只能说你 6,三目这种没法对齐的东西还会坑死强迫症
( 2 )是不是要 update 这个还是需要用户自己优化,当然优化到极致是要每次 shouldComponentUpdate 都要考虑的,然而根据不可变对象的思路,你即便是改动了 object 里的一个属性,也会导致整个 object 变化,到最后还是要 vdom 进行 diff,而 vue 直接在属性上挂了 setter 可以直接检测是那个属性发生了变动,当然如果属性绑定比较奇葩最后也会落到 vdom diff 这一步,但是的却 setter 要比直接裸比 dom 更好一点点(现在已经没人拿 ie8 说事了吧)
极致下 react 的每个 shouldUpdate 进行人工比较是性能会做到极致,但是既然选了 mvvm 就放弃了一些性能吧,比起 jquery 年代用 template 拼接的传统的 batch insert 近乎完美的高效来说
你也可以说你们公司最低端的机器是 iphone7 不会考虑 batch insert 那点开销