Hướng dẫn nhanh để thiết lập ứng dụng React với Redux + Thunk.
Redux là một thư viện JavaScript được sử dụng để quản lý trạng thái ứng dụng. Nó có thể được chia thành ba thành phần chính.
Một hành động là một đối tượng JavaScript đơn giản có hai thuộc tính: một loại và một trọng tải . Mục đích chính của một hành động là mô tả điều gì đó đã xảy ra trong ứng dụng (ví dụ: người dùng nhấp vào nút để thêm một mặt hàng vào giỏ hàng của họ).
Bộ giảm tốc là một hàm thực hiện ở trạng thái hiện tại và một hành động. Nó xác định cách cập nhật trạng thái dựa trên loại hành động, sau đó trả về trạng thái mới.
Trình tạo hành động là một hàm trả về một actionđối tượng, đối tượng này sau đó được gửi đến cửa hàng Redux. Thông thường, một trình tạo hành động chỉ có thể trả về một đối tượng. Bằng cách cài đặt phần mềm trung gian Thunk, chúng tôi có thể tạo ra các trình tạo hành động trả về một chức năng thay thế. Điều này cho phép ứng dụng của bạn thực hiện các cuộc gọi tìm nạp và tương tác với máy chủ.
So sánh hai người tạo hành động bên dưới.
// 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 }))
})
}
Mục tiêu cho ứng dụng của chúng tôi là hiển thị một nút. Khi nhấp vào nút, một hình ảnh của một con chó ngẫu nhiên sẽ được hiển thị.
Nếu bạn chưa thiết lập ứng dụng React, hãy tiếp tục và chạy lệnh sau trong thiết bị đầu cuối của bạn.
npx create-react-app redux-app
yarn add redux react-redux redux-thunk
Điều hướng đến reducersthư mục đầu tiên. Tạo một tệp có tên 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;
Khi ứng dụng của bạn phát triển, bạn có thể cần tạo nhiều hơn một trình giảm bớt. Để làm điều đó, bạn cần tạo một combineReducers.
Điều hướng bên trong reducersthư mục và tạo một tệp có tên index.js.
// ./src/reducers/index.js
import { combineReducers } from 'redux';
import dog from './dogReducer';
import anotherReducer from './anotherReducer';
export default combineReducers({
dog,
anotherReducer
})
Điều hướng đến actionsthư mục tiếp theo. Tạo một tệp được gọi là chỉ mục .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 }))
}
}
Điều hướng đến ./src/index.js.
Nhập nội dung sau.
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;
Sau đó, tạo cửa hàng.
let store = createStore(colors, composeEnhancers(applyMiddleware(thunk)))
<Provider store={store} >
<App />
</Provider>
Điều hướng đến ./src.
Tạo DogContainer.js.
Tạo Dog.js.
Chạy đi yarn start.
Tại thời điểm này, ứng dụng sẽ được khởi động và chạy.
Tóm lại:
Giới thiệu Đột quỵ là một trường hợp cấp cứu y tế có thể tấn công bất kỳ ai vào bất kỳ lúc nào. Nó xảy ra khi lưu lượng máu đến một phần của não bị gián đoạn, dẫn đến mất chức năng não đột ngột.
Tuần này, tôi nhận được một email từ một thành viên trong danh sách email hàng ngày. Họ muốn biết: Bạn truy cập tài nguyên nào hàng ngày, hàng tuần và hàng tháng? Câu hỏi tuyệt vời! Tôi rất vui khi cố gắng chia sẻ một số thông tin chi tiết về quy trình làm việc của mình và các tài nguyên hàng đầu mà tôi sử dụng.
Trong thế giới có nhịp độ nhanh và cạnh tranh ngày nay, sự nghiệp của một người đóng một vai trò quan trọng trong sự phát triển cá nhân, ổn định tài chính và sự hài lòng trong cuộc sống nói chung. Tuy nhiên, nhiều cá nhân thấy mình bị mắc kẹt trong một chu kỳ trì trệ và không hài lòng không ngừng, dần dần lãng phí trong cuộc sống nghề nghiệp của họ.
Nó đập vào mắt tôi Đột ngột như nó thường xảy ra Nó lại ở giữa chừng <Không, không phải cái ở Thái Bình Dương đâu bạn màu hạt dẻ, cái ở lễ hội hóa trang> Mọi tiêu đề đều ầm ĩ…..
Giới thiệu: Chào mừng những độc giả dũng cảm đến với cuộc hành trình sẽ đưa chúng ta đến những nơi sâu thẳm nhất của hành tinh chúng ta. Trong blog này, chúng tôi đi sâu vào thế giới bí ẩn của Rãnh Mariana, khám phá những bí mật ẩn giấu của nó và khám phá những sự thật lạnh thấu xương nằm bên dưới bề mặt của nó.
(Cảnh báo- Đây là tác phẩm Châm biếm, nhằm mục đích Lật đổ một cách vui vẻ- Chắc chắn không dành cho trẻ em) Bạn đã từng thấy bố mẹ mình trốn trong bếp và hút những điếu thuốc bốc mùi đó. Họ nói với bạn.