Vue.js 的设计思想

作者:JerryXia | 发表于 , 阅读 (18)
从出道到现在,它红遍全球,这期节目让我们来采访一下,而今前端框架的 “当红炸子鸡”!
小编: 你先自我介绍一下!!!
Vue: 尊敬的 FSUX 的读者们,大家好!!!我是Vue.js,是一个提供 MVVM 数据双向绑定的库,专注于UI 层面,核心思想是:数据驱动、组件系统。
小编: 这个介绍还是比较官方的哈!

小编: 那我们一个一个来,能先说说什么是数据驱动吗?听起来挺高大上的。
Vue: 所谓的数据驱动就是 View Model,保证数据和视图的一致性,通俗的讲就是,数据和视图变化是同步的,数据一更新,视图就会改变,或者视图一改变,数据也会相应的更新。
小编: 这个解释还是比较通俗易懂的,能说说具体的实现原理吗?其实我听说这个数据驱动的概念早就有人做到了,比如 谷歌大厂的 Angular 或者更早期的前端框架。
Vue: 首先,Vue.js 数据观测原理在技术实现上,利用的是 ES5 Object.defineProperty 和存储器属性: getter 和 setter(所以只兼容 IE9 及以上版本),可称为基于依赖收集的观测机制;
Vue: 其次,很多人...阅读全文

面向对象与函数式编程

作者:JerryXia | 发表于 , 阅读 (17)
面向对象编程和函数式编程有什么不同,或者你更倾向于哪一种。
何为面向对象面向对象编程 以下统称 OOP主要代表的语言有:C++、Java、C#、VB、.Net 等
基本特征是:封装、继承、多态。
何为函数式函数式编程 以下统称 FP主要代表的语言有:OCaml,Haskell、Scala 等
基本特征是:不可变数据、first class functions、尾递归优化。
我的看法其实 FP 和 OOP 并不互相排斥,这两种编程范式一个抽象过程一个抽象数据,正好是相辅相成的。前者擅长描述是什么后者擅长描述如何做。FP 抽象出 Functor,OOP 聚合数据,很完美。JS也不是纯 FP,所以现代框架和库继承和运用 FP 思想来改进设计而已。FP也谈不上高大上,当你用forEach和map这样的API的时候你就在用 FP 了
因为 OOP 有时间维,所以出某些bug的时候需要从程序运行过程去找原因,查看一些变量的变化历史,逐步排查。而 FP 没有时间维,所以只需要一个局部一个局部,一块一块地找问题,OOP 的(bug)事件会随时间而扩散,最后crash了整个世界,而 FP 天...阅读全文

Javascript 异步编程魔法

作者:JerryXia | 发表于 , 阅读 (26)
在单线程执行的 Javascript 中,异步最著名的是 Ajax,但是你仅仅知道这些吗?
单线程执行Two: 嘿,哥们儿,快点,我特么快憋不住了。
One: 我要三分钟,你先等着,完了叫你~
Two: 好的,记得叫我啊~ 你(Three)也等着吧,完了叫你~
Three: 等不了了,我回家换裤子吧!

所谓”单线程”,就是内存会为任务形成一个任务队列,让任务排队并挨个执行,例如,队列里有 One、Two、Three 3个任务,执行顺序为: One -> Two -> Three;这种执行的方式很清晰明了,特点是必须得 One 执行完才能执行 Two,很像我们生活中的银行排队办理业务,更像我们排队上老司机的车!!!

可是,这种方式的缺点也很明显,前面的任务没执行完,后面的任务都必须等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段 Javascript 代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。
上述执行方式中,程序的执行顺序与任务的排列顺序是一致且同步的。
如何异步所谓的异步,就是每一个任务有一个或多个回...阅读全文

我对微信小程序的看法

作者:JerryXia | 发表于 , 阅读 (26)
世界并不缺少神话,至少在大众狂欢的年代,在媒体狂热的时代。
我为什么不看好微信小程序,我知道,文章一出来,也许会有各种各样的声音,但是如今的媒体和互联网对新闻或者技术的报道是否务实呢?这就不得而知。营销方面从来没有一款产品,像微信一样这样深刻的改变了现代中国人的社交。
也从来没有一款产品,像小程序一样,还没有面世之前引发了大多数企业与开发者的关注。
微信小程序自从一推出就备受热捧,“大震荡”、“颠覆”、“杀死一切APP ” 却还尚未内测之际,媒体和自媒体便开始为之沸腾,为其摇旗呐喊。
微信的想法:
手机开机 —> 微信 —> (社交+购物+吃饭+金融…) —> 手机关机 —> 循环以上步骤
别的公司的想法:
微信 —> 小程序 —> 获得粉丝 —> 完整版请下载APP
由于「小程序」还是个非常新的东西,我会根据现有的信息,尽可能向你解释它是个什么东西:它其实就是网页应用,跟微信里的购物、打车功能没有本质区别;相比普通的网页应用,它的加载速度更快,号称体验接近原生 app(玩过的人都知道,它更像一个脱了壳 的’app’);你可以把它理解为在网页和原生应用之间取得平衡的一种...阅读全文