STOP ag úsáid Redux go dall!
Mar dheveloper leisciúil — ní raibh mé i ngrá leis. Bhraitheas go raibh an default state agus context i bhfad níos fearr. Bhí an iomarca boilerplate i Redux agus an separation of concerns, cé go raibh sé bailí, d'fhéadfaí a bhaint amach go furasta trí custom hook a úsáid. Bhraitheas go raibh redux-saga ina dhualgas gan ghá a bheith ann freisin.
Ach bhí mé ag tosú ar mo ghairmréim — mar sin shíl mé go bhfadfainn deis dhó. Bhain mé úsáid as redux agus redux-saga ar feadh thart ar bhliain. Agus ní raibh ann ach síneadh ar mo dhiúltú dó. Bhí mé i gcónaí ag fiafraí — cén fáth go bhfuilimid ag úsáid redux, agus thug mo sheanóirí freagraí dom ar nós —
- Déanann sé an cód níos inbhraistinte
- Scarann sé an loighic ghnó ó loighic na gcomhpháirte
- Is iomrá go dtabharfá nó úsáid a bhaint as useState do chineálacha casta sonraí (ar nós réada nó eagráin d'réada)
- Is féidir le redux-saga níos mó rialaithe a thabhairt duit ar staid an API
- D'fhéadfá context a úsáid, ach cé mhéad soláthraí comhthéacs a bhraistínn tú do do app?
Do gach ceann díobh seo, bhí freagraí agam, ach ní raibh siad an-thúisceanacha. I mean, redux a bhí i redux — úsáidte ag milliúin dhevelopers agus cuideachtaí mhóra — agus ní raibh ionam ach innealtóir bogearraí sóisearach le frustrachas ar bhoilerplate.
Anois, tar éis dom a bheith ag obair mar Cheannfort Foirne, is féidir liom a rá go muiníneach, bhí mo sheanóirí ar fad mícheart — agus aontódh siad liom. Is é mo chúis don alt seo a scríobh ná go bhfuil go leor cuideachtaí ann fós inniu a úsáideann redux agus a glacann leis mar chaighdeán dall. Caithfimid stad agus féachaint ar na roghanna eile atá againn!
Chun tús a chur leis, déanaimis an fhadhb atá agam le redux a thuiscint níos soiléire. Seo an méid cóid a rachadh ag teastáil uainn a scríobh ar staid shimplí comhaireamh ag úsáid redux. Ar ndóigh, ní hé seo ach sampla — ní léiríonn sé fíor-fheidhmchlár, ach tá sé an-éifeachtach.
// src/actionConstants.js
const ACTION_CONSTANTS = {
INCREMENT_COUNT: "INCREMENT_COUNT",
DECREMENT_COUNT: "DECREMENT_COUNT",
RESET_COUNT: "RESET_COUNT"
}
// src/store/countStore/reducer.js
const initialState = { count: 0 }
export const countReducer = (state = initialState, action) => {
switch (action.type){
case ACTION_CONSTANTS.INCREMENT_COUNT:
return { count: state.count + 1 };
case ACTION_CONSTANTS.DECREMENT_COUNT:
return { count: state.count - 1 };
case ACTION_CONSTANTS.RESET_COUNT:
return initialState;
}
}
// src/store/countStore/selectors.js
export const useCountReducer = () => {
return useSelector(store => store.countReducer)
}
// src/store/countStore/actions.js
export const incrementCount = () => ({
type: ACTION_CONSTANTS.INCREMENT_COUNT
})
export const decrementCount = () => ({
type: ACTION_CONSTANTS.DECREMENT_COUNT
})
export const resetCount = () => ({
type: ACTION_CONSTANTS.RESET_COUNT
})
// src/store/index.js
const rootReducer = combineReducers({ countReducer: countReducer, ... });
Nach é an rud is cúngearchéime é? Ní thugann sé seo isteach an cód atá ag dul isteach i do saga nó thunk nuair atá tú ag idirghníomhú leis an backend — ní ann ach do athróg stata in úsáid choiteann — comhaireamh. Samhlaigh an méid trioblóide atá ar fáil agat chun athrú beag ar an loighic a dhéanamh — ag foluain ó chomhad go comhad agus a chinntiú go bhfuil na hathruithe sin comhsheasmhach ar fud na gcomhad.
Is stór domhanda Redux a bheidh ann. Ba bhhaol é a úsáid chun an staid a roinnt ar fud na gcomhpháirte ar fad i do app. Ach an fhadhb ná, nuair a thosóidh cuideachtaí ag úsáid redux, bíonn siad i ndan a stóráil a bhfad staid API (ar féidir a bheith riachtanach a roinnt amach sa todhchaí) ag úsáid redux. Bíonn ciall ann do thionscadal ar a bhfuil go leor daoine ag obair — agus ba bhá duit bheith agatsa bealach amháin comhsheasmhach ar scríobh cód. Mar sin féin, méadaítear ar fhad an chóid agus laghdaítear a bhainteachtas go trom.
Cé gur thug siad isteach redux-toolkit agus is dócha go dhéanann sé foluain ar an chód beagáinín — níor bhraistfeá riamh go leor leabharlanna eile ann a chabhraíonn leis an jab a dhéanamh i bhfad níos fearr. Seo an stack go-to a úsáideann muid ag My Next Developer:
React-Query: Úsáidim react-query chun gach staid API a bhainistiú i mo apps. Bainistíonn sé go hinmheánach ag lódáil, earráidí agus stáit soiléire do gach glaoch API, cuimhním ar thorthaí chun athfhiosrúchán a sheachaint agus déanann sé i bhfad níos éasca an sonraí a rochtain ar fud na gcomhpháirte iolracha. Uirlis bhreá atá ann — a luaithe is a úsáideann tú í, gheallim nach bhfillfidh tú. Déanann doiciméadú simplí agus cur i bhfeidhm bunaithe ar fhocláir é an-gheal. Seo Impleofaí React Query do Thosaitheoirí a bheith ann ag Codevolution chun react-query a fhoghlaim.
Comhthéacs: Tá go leor cásanna ann nach bhfuil staid dhomhanda neamh-API-bhunaithe ag teastáil a roinnt ar fud na gcomhpháirte iolracha. Sna cásanna beaga sin, is é an comhthéacs an duine is éasca a chur i bhfeidhm. Ní chuireann sé leabharlann eile go dearúd isteach sa mheascán ach an oiread.
An bhfuil easaontas agat? Ba bhreá liom do thuairimí a chloisteáil!


