全家桶
"react": "^16.2.0",
"react-dev-utils": "^5.0.0",
"react-dom": "^16.2.0",
"react-redux": "^5.0.7",
"react-router-dom": "^4.2.2",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0",
這都是什么???
Vue相比之下友好很多,大部分看個教程就能開始用。
Vue官方已經(jīng)分好了4個操作,數(shù)據(jù)存放以及操作一目了然。
然后現(xiàn)在學(xué)react跟著某個教程寫的
import axios from 'axios';
import {getRedirectPath} from '../util.js';
const REGISTER_SUCCESS = 'REGISTER_SUCCESS'
const ERROR_MSG = 'ERROR_MSG'
const initState = {
redirectTo: '',
isAuth: false,
msg: '',
user: '',
pwd: '',
type: '',
}
// reducer
export function user(state = initState, action) {
switch(action.type) {
case REGISTER_SUCCESS:
return {...state, msg:'',redirectTo:getRedirectPath(action.payload) , isAuth:true, ...action.payload}
case ERROR_MSG:
return {...state, isAuth:false, msg:action.msg}
default:
return state
}
}
function registerSuccess(data) {
return {type:REGISTER_SUCCESS,payload:data}
}
function errorMsg(msg) {
return {msg, type:ERROR_MSG}
}
export function regisger({user, pwd, repeatpwd, type}) {
if (!user || !pwd || !type) {
return errorMsg('用戶名密碼必須輸入')
} else if (pwd !== repeatpwd) {
return errorMsg('密碼和確認(rèn)密碼不同')
}
return dispatch => {
axios.post('/user/register', { user, pwd, type }).then(res => {
if (res.status === 200 && res.data.code === 0) {
dispatch(registerSuccess({user,pwd,type}))
} else {
dispatch(errorMsg(res.data.msg))
}
})
}
}
dispatch到底在干嘛?
Vue:父向子:子組件數(shù)據(jù)名="父組件數(shù)據(jù)名"
子向父@子組件傳遞的事件名="父組件定義的事件" this.$emit('子組件傳遞的事件名', 數(shù)據(jù))
react: this.props.history.push('/register')你這個props里面存了什么?為什么一下有history函數(shù)一下又有this.props.msg這種字符串?
教程引入那么多插件每個插件里導(dǎo)入的函數(shù)是做什么的?
你告訴我這里用了這個插件的這個函數(shù),但是他到底是干什么的?要解決什么問題?
Vue一些東西一句代碼解釋清楚了,react想寫筆記不知道從哪里下手,一股強(qiáng)耦合的味道
我現(xiàn)在總感覺缺了什么東西,概念好像沒搞清楚。有大神提點(diǎn)一下嘛?
建議跟著官方教程走,國內(nèi)總結(jié)的教程說實(shí)在的,有時候上來就全家桶但是又不講清楚各個都干嘛的是有些頭疼。
比如里邊的 redux 實(shí)際上并不是 react 獨(dú)家的東西,它是個 JavaScript 狀態(tài)容器,提供可預(yù)測化的狀態(tài)管理,只是對 react 做了支持而已。
router、thunk之類的都是遇到一些場景問題了才需要引入的,剛開始學(xué)沒必要上來就全齊活。
一句即可: npm install -g create-react-app
我記得當(dāng)初我剛開始學(xué)react的時候,感覺很熟悉,看了一個下午就可以寫出一個todolist了,因?yàn)橹拔覍W(xué)過一些vue,雖然也只是做了一些簡單的demo,但是react的很多概念在vue中都有,所以我不覺得一個會vue的人會學(xué)不來react。
個人覺得,學(xué)習(xí)編程真的不能本末倒置,理論在前,實(shí)戰(zhàn)在后,先別急著看react-router和redux這些東西,就像vue還沒學(xué)好就直接上vue-router和vuex,這樣能學(xué)好嗎?
建議先從阮一峰的react教程開始看起,把這些基本概念搞懂。
雖說已經(jīng)選擇了最佳答案,但是剛剛看到,也來回到一下,既是提供一點(diǎn)不同的觀點(diǎn),也是對我自己的一點(diǎn)總結(jié)。
首先,我是從react轉(zhuǎn)到vue的,醉醉深切的觀點(diǎn)就是,react比vue難,但是react比vue功能更強(qiáng)大,更好用。vue的局限性太大了,
解答一下樓主的疑問點(diǎn):
1。狀態(tài)管理,redux的狀態(tài)管理其實(shí)比vue的狀態(tài)管理更合理,更優(yōu)雅,至于為什么我這么說,因?yàn)関uex的mutations居然對擴(kuò)展運(yùn)算符的state更新有嚴(yán)重的不兼容性或者說api設(shè)計(jì)上的bug。這會造成很多的不必要代碼,并且vuex的type這個玩意真的很惡心。
2。關(guān)于dispatch其實(shí)在使用上和vue在感覺長差別不大,但是具體的差別你要查看下相應(yīng)的api并自己去嘗試。
3。學(xué)習(xí)建議:現(xiàn)在國內(nèi)react使用最廣泛的是支付寶,強(qiáng)烈建議學(xué)習(xí)支付寶的antd前端ui庫,和ant-design-pro,非常好的一套框架。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。