如何看待 Moon.js 幾乎和 Vue.js 一樣?
http://moonjs.ga/docs/getting-started.html
API 幾乎照搬 Vue不過體積小很多外國程序員好像沒說它抄襲啥的https://news.ycombinator.com/item?id=15105726
Ractive 哭暈在廁所。。
與標題無關。
畢竟 Vue 是 MIT 協議,你也可以 fork 一個 Vue 改叫 Wue,然後宣稱是你寫的。更不要說 API 一樣什麼的。
當然了,在國內不被噴死,算我輸就當它是 vue 的 preact 唄……
關於 api 抄襲的問題,多說一句,雖然甲骨文把 google 告了,我不管法律最後怎麼說,在我這裡,我永遠不會認為 api 模仿屬於侵權行為。
這不僅僅是個保護思想還是思想實現的問題(然而我認為 api 設計不是思想實現),我們要尊重軟體行業的歷史和特點,知識產權當然屬於私權保護,但是最終還是要落腳到是否有利於行業的生存和發展。如果 api 設計作為知識產權受保護,那這個世界上會出現太多徒勞無功然而必須要寫的代碼了,linux 也壓根不會出現。
所以 vue 沒有抄襲 angular,moon 也沒有抄襲 vue,這是我的觀點。看了一波代碼,有點樸實無華,沒有什麼新意。純粹為了小用這個意義不大。
又一個新輪子嗎,但願別火起來。我實在不想再去學輪子了。
還是有一些不同的,生命周期不同,更新數據還得調用set方法。總之借鑒api的事,不能算抄襲的吧
重點不是 moon.js 抄 vue.js。而是 moon.js 有多少的示例,可以 粘貼就用,文檔夠不夠親切。
前端人員,至少要玩過 20多個以上的庫及框架。
根本不在乎誰抄誰,只在乎您的文檔好不好,API好不好用。
Moonjs 這個 11歲 的少年作者,牛逼呀
這是我第一次覺得新輪子我不需要關注的一次了。
Vue 的一個特色是修改了對象的 getter 和 setter,然後覆寫了一些諸如 Array.push 等方法,從而實現了自動的數據監聽和依賴收集。簡單看了一下 Moon.js,Demo 裡面寫的都是 app.set(),computed 裡面也是寫的 this.get(),可以說,Vue 中的精髓並沒有真正借鑒過去,僅僅是借鑒了類似的 API 而已。
Moon.js 因為沒有使用到 ES5 的 Object.defineProperty 方法,因此從理論上說,它可以兼容低版本的 IE 瀏覽器。如果這點實現的話,我還是很希望看見這樣的框架的出現的。畢竟在國內,IE8 還佔有較大的市場份額,很多時候因為必須兼容 IE8 而放棄了 Vue,而這類框架的出現,有助於 vue-like 在國內的推廣,並且相同的 API,也能降低學習的成本。
說體積小的,只是因為現在還沒有完善罷了,例如 Dealing with animation? · Issue #85 · kbrsh/moon,等這些 feature 慢慢加上去以後,這個優勢相對就不那麼明顯了。
就你們前端喜歡撕來撕去
目前為止不兼容IE低版本的,就這種類型的庫,隨便讓他火。
難道不覺得一分鐘就上手的感覺么?/手動滑稽
作為一個業餘前端 關注 moonjs很長時間了(快6個月),同時也在自己的一些項目中用過很多,自己曾手動編譯過moonjs。說下我個人的看法,vue 也用,但是個人主要傾向於輕量級前端,目前公司項目用在用react很大很大 很大 很頭疼。。。
moonjs官方介紹
- Preact - 3kb
- Moon - 7kb
- Mithril - 8kb
- Vue - 25.86kb
- React + React DOM - 43kb
- Angular 2 - 111kb
Update performance (more is better):
- Moon - 102 repaints/sec
- Mithril - 95 repaints/sec
- Angular 2 - 62 repaints/sec
- Vue - 50 repaints/sec
- React - 49 repaints/sec
- Angular - 47 repaints/sec
用眼睛看的應該都知道了吧 。不用說吧 。一樣????一樣是什麼鬼啊?什麼叫一樣啊?首先這個問題提問者是一個前端一個程序員吧?您是做技術的吧?技術一個嚴謹的專業,東西您用過嗎就用一樣,大小運行速度...這壓根就不是一個檔次行吧?
moonjs官方作者直接拿著對比的是AngularJS 原文如下:
&> Directives
Angular provided a lot of helpful directives that could perform a variety of tasks. Moon has directives as well, and can be used to conditionally render items, to render lists, to attach event listeners, to do two way data binding, and to give hints to the compiler. Directives always have a prefix of m-.
一 有時間把 體積和性能搞好再說什麼一樣不一樣的,別自己用嘴巴吃飯,看見別人用嘴就不爽。。。
二 就算是抄襲,別說一樣,就前端而言能抄的更小的體積,更快的性能,那麼毋庸置疑抄襲者的技術能力秒殺原創能力不是嗎?
三 少問些無聊的話題,多看看書,多看看文檔,手動編譯下moon-js,自己嘗試下。
四 說不定作者故意搞vue一樣的API ;就比vue體積小 ,性能和渲染速度快,而且我還是一個人開發。。。
五 一個十來歲的小孩寫了一個前端庫 秒殺了 Google Facebook 。。。前端庫 全世界都服 就中國說一樣 不服, 你們的包容心去那裡了。。。。
還是那句話 典型的自己用嘴吃飯 ,就不能讓別人跟你一樣用嘴吃飯....... (我第一次回答 好無聊的一個話題.... 失眠去了。。。樓主慢慢玩吧 )
你管他,這叫微創意
人家也在readme裡面說了 heavily inspired by vue……的確挺heavy
看了這個項目,純粹一個人開發,文檔質量還算不錯。不過我是不敢自己的項目中使用。
前端框架的存在本來就是為了提高開發效率,如果需要熟悉源碼才能排除很多坑的話,那還不如自己手擼一個呢
管他呢?vue的作者都沒管我們何必操這心呢?好好搬磚,擼代碼才是人生真諦
我覺得moon樸實一些 :}
這個問題,跟我的疑問一模一樣…
當初群里說這是13歲的小神寫的,著實震驚
但是百度了一下,發現確實跟vue很像哎當年lodash也是模仿著underscore寫的啊說抄襲的話感覺有點言過了
推薦閱讀: