如何評價前端應用框架 dva?

一個基於 Redux 的前端應用開發框架。

GitHub - dvajs/dva: React and redux based, lightweight and elm-style framework. (Inspired by choo)


最近項目里用到了,總體感覺還是不錯的。

首先是作者給的文檔很貼心,給了一個知識網路,可以對照著把基礎知識都學一下,不至於看到各種es6的奇怪關鍵字和react全家桶不知所措。

dva的封裝比較薄,基礎知識看過之後,整個框架理解起來比較輕鬆,沒有黑魔法。

另外作者給了三四個例子,都比較詳細,照著一步一步基本可以做出來。

總的來說,就是把react那一套技術的學習成本降低了不少。

然後說說缺點:

先是webpack.config.js,把本來json的寫法破壞了,比如加個plugin還要

webpackConfig.plugins.push{xxxx}

然後是每寫完一個model都要在index.js裡邊手動加上去,假如能自動檢測model文件夾就好了。

假如start之後能自動打開瀏覽器就好了(雖然這個可以自己加個插件)

最後是貌似和css module兼容得不太好(也可能是我配置得不對)


已經發布了新版本,非常感謝!

----------------------------------------

個人維護的項目,你懂的。

你可以看一下 Github 上面的contributors: dva contributors,你會發現20多個人卻只有一個人貢獻了99%的代碼,各種issue被關閉,真為項目發起人感到著急,畢竟一個人精力始終有限,而且react-router、react、redux 的版本每一次迭代都會對項目產生影響,比如現在react-router已經到了4.x了,但是dva內置的版本卻還是2.x,一旦自行升級,就相當於主動挖了一個坑,此時就要在使用 dva 和使用新版本的組件上做出選擇了。

這個項目真的很贊,但是很不幸維護的人太少了。


最近剛剛嘗試了DVA,覺得dva挺好用的,有如下特點:

  1. 框架: dva是個框架,集成了redux、redux-saga、react-router-redux、react-router
  2. 快速初始化: 可以快速實現項目的初始化,不需要繁瑣地配置
  3. 簡化開發:將initState、saga、reducer集成到一個model裡面統一管理,避免文件散落在各個文件裡面,便於快速查找與開發
  4. 簡潔的API:整個項目中只有dva、app.model、app.router、app.use、app.start幾個API
  5. 無縫對接:跟react的生態沒有衝突,例如可以直接使用redux devtool工具
  6. 動態機制:app.start以後,仍然可以註冊model,靈活性較高

再說說個人覺得不太爽的地方吧:

  1. namespace不統一: dva中的action.type格式是namespace/XXX,且在model中不需要添加前綴namespace,但是在組件中dispatch,卻需要添加prefix
  2. action問題:action會散落在兩個地方,一個是saga裡面,另外一個是component dispatch的時候,當然這個問題在使用redux-saga的時候就會存在,只是dva仍然沒有很好地統一起來。


最近想在項目裡面集成dva的redux封裝進去,

but,發現,dva-cli生成的項目封裝了,webpack,react-router,想升級,又怕挖坑。

於是,自己在種子項目裡面使用了dva-core,調試了兩天,終於就緒,結果發現,

models和component沒法connect起來,超級崩潰。

問了下作者,說建議還是使用封裝好的dva。。。

我就是想自己搭工程化額,再使用dva,那我還折騰啥。

-----------以上只是吐槽-------------------

不過話說回來,項目還是好項目,思路還是好思路,期待dva2.0吧。


倒是試著看了下dva的demo,感覺做的蠻不錯的,尤其針對redux和saga之間的通訊創意,但是版本迭代確實不太好,維護的人太少。

不過思維模式倒是可以借鑒,自己開發了一套類似dva的組件,用於通訊,也用的都是最新的版本,感覺蠻不錯的。


在用 antd 的時候用到。目前的感覺就是:簡化了 react-redux 的部署的文件複雜度。如果你熟悉 redux 那一套,並不需要了解太多知識就能上手。


除了內建webpack讓我不知所措,其他的都感覺不錯

才剛搭完,做完這波項目再來詳說


謝邀。

前端就是好,睡一覺醒來都有幾個新框架發布了。


三天不關心JS就出了個新框架……前端真好啊……

下一個問題是不是「如何評價新框架Genji?」

另外,d.va愛你喲?(?v??)

以下有嚴重精神污染,心臟不好不要點下去

以及d.va愛♂你喲


三天不看JS,已經跟不上潮流了, 碼農界我只服JS工程師。


我看了三遍標題才確認這不是來自關注的守望先鋒話題


謝邀。

// lightweight and elm-style framework 你懂的


我大Java死磕Spring好多年。


個人覺得 應該把webpack配置暴露出來 這樣可定製化更高


dva是個好架子,不過爬坑的過程實在是痛苦


來來來 服上一劑良藥 DVA源碼閱讀-初始化篇 · Issue #1 · jnotnull/dva-generator


0基礎,業務需要寫個前端系統。

react+dva+ant,雖然什麼虛擬dom啥的至今不懂,貌似因為和JS關係不大,不影響前端小白使用。

節省了很多開發時間。

你大JS框架好評!


dva-reducer

用來減輕dva 的model寫3個點的痛苦

GitHub 和 npm 都可以找到


挺好的,本來不會redux,跟著教程走一波也能搞懂了,節省了很多時間去搭建環境


呵呵,dva + react + node,一圈下來你會發現,其實就是開源版的Microsoft .net framwork大禮包那套東西,還比.net缺個IDE...


作為一個後端的,公司要求前端也要學習,本來對前端框架就沒啥了解,看的我是一臉懵逼


// 卧槽,前端又一個框架!


問個問題,dva 的路由,域名後面跟個「#」 是為什麼, 能去掉嗎?


推薦閱讀:

如何在 JS 中嵌入 HTML 代碼?
js浮點數精度問題的前世今生?
為什麼JS中一個浮點數位或0會去掉小數部分?
怎樣精確區分這些名詞:庫、插件、組件、控制項、擴展?
sass、scss、less、compass、bootstrap學習的順序是什麼?

TAG:前端開發 | JavaScript | 前端開發框架和庫 | React | Redux |