Redux + Thunk ile bir React uygulaması kurmak için hızlı bir kılavuz.
Redux, uygulama durumunu yönetmek için kullanılan bir JavaScript kitaplığıdır. Üç ana bileşene ayrılabilir.
Bir eylem bir: İki özellikleri olan basit bir JavaScript nesnesidir türü ve yük . Bir eylemin temel amacı, uygulamada meydana gelen bir şeyi açıklamaktır (örneğin, kullanıcı alışveriş sepetine bir öğe eklemek için bir düğmeyi tıklar).
Bir azaltıcı mevcut durumu ve bir eyleme alan bir fonksiyonudur. Eylemin türüne göre durumun nasıl güncelleneceğini belirler ve ardından yeni bir durum döndürür.
Eylem actionoluşturucu, daha sonra Redux mağazasına gönderilen bir nesneyi döndüren bir işlevdir . Normalde, bir eylem oluşturucu yalnızca bir nesneyi iade edebilir . Thunk ara yazılımını yükleyerek bunun yerine bir işlev döndüren eylem yaratıcıları yapabiliriz. Bu, uygulamanızın getirme çağrıları yapmasına ve bir sunucu ile etkileşimde bulunmasına olanak tanır.
Aşağıdaki iki aksiyon yaratıcısını karşılaştırın.
// returns an object
export const createTodo = todo => {
return {
type: "CREATE_TODO",
payload: todo
}
}
// returns a function
export const getTodo = () => {
return(dispatch) => {
return fetch(url)
.then(resp => resp.json())
.then(todo => dispatch({ type: "GET_TODO", payload: todo }))
})
}
Uygulamamızın amacı bir düğme görüntülemektir. Düğmeye tıklandığında rastgele bir köpeğin resmi görüntülenmelidir.
Halihazırda kurulu bir React uygulaması yoksa, devam edin ve aşağıdaki komutu terminalinizde çalıştırın.
npx create-react-app redux-app
yarn add redux react-redux redux-thunk
reducersÖnce klasöre gidin . Adlı bir dosya oluşturun dogReducer.js.
// ./src/reducers/dogReducer.js
const dog = (state = '', action) => {
switch(action.type) {
case 'CHANGE_IMAGE':
return action.payload
default:
return state
}
}
export default dog;
Uygulamanız büyüdükçe birden fazla redüktör oluşturmanız gerekebilir. Bunu yapmak için bir combineReducers.
Klasör içinde gezinti reducersve adlı bir dosya oluşturun index.js.
// ./src/reducers/index.js
import { combineReducers } from 'redux';
import dog from './dogReducer';
import anotherReducer from './anotherReducer';
export default combineReducers({
dog,
anotherReducer
})
actionsSonraki klasöre gidin . İndeks adında bir dosya oluşturun .js.
// ./src/actions/index.js
export const changeImage = () => {
return(dispatch) => {
return fetch('https://dog.ceo/api/breeds/image/random')
.then(resp => resp.json())
.then(image => dispatch({ type: "CHANGE_IMAGE", payload: image.message }))
}
}
Gidin ./src/index.js.
Aşağıdakileri içe aktarın.
import { Provider } from 'react-redux';
import { createStore, compose, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import dog from './reducers/dogReducer';
import rootReducer from './reducers';
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
Ardından mağazayı oluşturun.
let store = createStore(colors, composeEnhancers(applyMiddleware(thunk)))
<Provider store={store} >
<App />
</Provider>
Gidin ./src.
Oluşturun DogContainer.js.
Oluşturun Dog.js.
Çalıştır yarn start.
Bu noktada uygulamanın çalışır durumda olması gerekir.
Özetlemek:
Giriş İnme, herhangi bir zamanda herkesi etkileyebilecek tıbbi bir acil durumdur. Beynin bir kısmına kan akışı bozulduğunda meydana gelir ve ani beyin fonksiyon kaybına yol açar.
Bu hafta, günlük e-posta listesinin bir üyesinden bir e-posta aldım. Bilmek istediler: Günlük, haftalık ve aylık olarak hangi kaynakları ziyaret ediyorsunuz? Harika soru! İş akışım ve kullandığım en önemli kaynaklar hakkında bazı bilgileri paylaşmaya çalışmaktan mutluluk duyuyorum.
Bir OSINT Araştırmacısı, CTF Oyuncusu veya yalnızca istenmeyen aramalar alan biri olabilirsiniz. Bir reklamda gördüğünüz numarayı doğrulamaya çalışan biri.
Günümüzün birbirine bağlı dünyasında, siber saldırı tehdidi her zamankinden daha yaygın. Siber suçlular ve ulus-devlet aktörleri sürekli olarak güvenlik açıklarından yararlanmaya ve değerli verileri çalmaya çalışarak her büyüklükteki kuruluş için önemli bir risk oluşturuyor.
Merhaba, siber meraklıları! Tehdit avı için OSINT serisine tekrar hoş geldiniz. İlk makalede, size OSINT'e genel bir bakış ve onun tehdit avlamadaki önemi hakkında bilgi verdim.
2022'de GPT-3'ün piyasaya sürülmesiyle yazma becerisinin önemi azalmış gibi görünüyor. AI ile, zayıf yazıya sahip kişiler de kaliteli personel oluşturabilir.