当前位置:网站首页>How to use the DVD entry level in taro3.*
How to use the DVD entry level in taro3.*
2022-06-29 21:48:00 【yunchong_ zhao】
If you use dva do react Project status management , It's not so cool , This is the latest To do a small program , Do not use native development , I chose taro frame , To develop applets ,
But I still want to use state management dva What shall I do? . In fact, it can still be used
Students, please continue to look down
Blogger's taro The version is 3.4 Of course It is relatively new
1, A good workman does his work well , You must sharpen your tools first Before the start , We installed a lot of things
yarn add react-redux redux dva-core dva-loading --save
Then start the configuration
stay src Create one under the file models Folder
Let me take a classic example here . Just explain the counter as the status
models/index.js models/count.js I created two files
models/index.js
import count from './count'
export default [count]
models/count.js Here are some examples Modify synchronously and asynchronously
export default {
namespace: "count",
state: {
count: 11112,
},
effects: {
* AsyncChangeCount(_, {
put }) {
const value = yield new Promise((resolve) => {
setTimeout(() => {
resolve(2)
}, 2000)
})
yield put({
type: "changeCount",
payload: {
count: value
}
})
}
},
reducers: {
setCount(state) {
state.count += 1;
return {
...state };
},
changeCount(state, {
payload }) {
state.count = payload.count
return {
...state }
}
},
};
Then is dva Tool files for
In your utils Under the document Create a dva.js In fact, it is used here The way other big guys write But let's say everything In fact, they are almost This is just a little encapsulated No big problem
import {
create } from 'dva-core'
import createLoading from 'dva-loading'
let app,store,dispatch;
function createApp (opt) {
// redux journal
// opt.onAction = [createLogger()];
app = create(opt)
app.use(createLoading({
}))
if (!global.registered) opt.models.forEach(model => app.model(model))
global.registered = true
app.start()
store = app._store
app.getStore = () => store
dispatch = store.dispatch
app.dispatch = dispatch
return app
}
export default {
createApp,
getDispatch () {
return app.dispatch
},
getState: () => store.getState()
}
The play is app.js Configuration in
import {
Component } from 'react'
import {
Provider } from "react-redux";
import dva from "./utils/dva"
import models from './models';
import './app.scss'
const dvaApp = dva.createApp({
initialState: {
},
models,
});
const store = dvaApp.getStore();
class App extends Component {
// this.props.children Is the page that will be rendered
render () {
return <Provider store={
store}>{
this.props.children }</Provider>
}
}
export default App
The above is that the configuration is completed . Then start using... In the component .
After all, now react yes hooks The era of the I also use hooks Let's take an example
The core is from react-redux There are two hooks Everything else adds up class Type usage is similar
import { useSelector, useDispatch } from ‘react-redux’
import {
View } from "@tarojs/components";
import {
useState } from "react";
import {
AtButton } from "taro-ui";
// Introduce on demand taro-ui
import "taro-ui/dist/style/components/button.scss";
import "taro-ui/dist/style/components/loading.scss";
import {
useSelector, useDispatch } from 'react-redux'
import './index.scss'
export default () => {
const [count, setCount] = useState(0);
const count1 = useSelector(state => state.count.count)
const dispatch = useDispatch();
return (
<View>
<View>component state: {
count }</View>
<View>redux data: {
count1 } </View>
<View className='h100'></View>
<AtButton type='primary' loading size='small' onClick={
() => setCount(count + 1)}>click change state </AtButton>
<View className='h100'></View>
<AtButton type='primary' loading size='small' onClick={
() => dispatch({
type: "count/setCount"})}>click change redux</AtButton>
<View className='h100'></View>
<AtButton type='primary' loading size='small' onClick={
() => dispatch({
type: "count/AsyncChangeCount"})}> Asynchronous modification redux The number </AtButton>
</View>
);
};
That's it . Continue to use dva stay taro I'm very happy .
Follow me to keep updating Front end knowledge .
边栏推荐
- [advanced ROS chapter] Lecture 4: duplicate names in ROS (nodes, topics and parameters)
- MES系统与ERP如何集成?本文告诉你答案
- 不同系统下的文件层级符号小结
- Knowledge distilling learning notes
- STM32 minimum system construction (schematic diagram)
- 小型圖書館項目總結
- Recruit | DBA Data Engineer every week with an annual salary of 35+. Dream of Kyushu and bright stars!
- Sophon CE community edition goes online, and free get is a lightweight, easy-to-use, efficient and intelligent data analysis tool
- Verilog implements DDS waveform generator module, which can realize adjustable frequency and phase, three waveforms
- Résumé du projet de petite bibliothèque
猜你喜欢

【ROS进阶篇】第二讲 自定义头、源文件封装

Golang operation NSQ distributed message queue

尚硅谷实时数据仓库项目(阿里云实时数仓)

Report delivery engineer

透过华为军团看科技之变(五):智慧园区

Résumé du projet de petite bibliothèque

yolov6训练自己的数据记录+yolov5对比测试

STM32 and gd32 notes

高校如何基于云原生构建面向未来的智慧校园?全栈云原生VS传统技术架构

Realization of graduation project topic selection system based on JSP
随机推荐
Topic39——78. 子集
【ROS进阶篇】第四讲 ROS中的重名问题(节点、话题与参数)
CORDIC based Signal Processor desgn
阿里巴巴关键字搜索商品API接口(item_search-按关键字搜索商品接口),阿里巴巴搜索API接口
Calibration, correction and world coordinate calculation of binocular stereo vision camera (openCV)
Bs-gx-017 online examination management system based on SSM
leetcode:724. Find the central subscript of the array
GoAhead WebServer移植
Sophon CE community edition goes online, and free get is a lightweight, easy-to-use, efficient and intelligent data analysis tool
STM32 and gd32 notes
Amazon Keyword Search API interface (item_search- Amazon product search interface by keyword), Amazon API interface
leetcode:307. 区域和检索 - 数组可修改
Is it safe to open a securities account in Caixue school?
yolov6训练自己的数据记录+yolov5对比测试
Matlab adds noise / disturbance to data
DB queries the database, merges two unrelated tables, adds non-existent fields, and assigns default values
BUAA OO unit 4 HW16 unit 4 Summary and course review
Change detection and batch update
STM32最小系统搭建(原理图)
Vipshop product details API interface (item_get- get vipshop product details interface), vipshop details API interface