日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dva的用法_dva.js 用法详解:列表展示

發布時間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dva的用法_dva.js 用法详解:列表展示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次主要通過在線獲取用戶數據并且渲染成列表這個案例來演示dva.js。

整個開發流程概括下來應該是:

編寫用戶列表model(數據模型)-> ?編寫修改model的方法 -> 編寫服務接口 -> ?編寫組件 -> ?將組件與dva.js連接 -> 將dva.js提供的接口(dispatch)和數據模型通過props傳入組件 -> 渲染。

我們先從第一步開始。

編寫用戶列表model及修改方法:(src/models/users.js)

import * as userService from '../services/userService'exportdefault{

namespace:"users",

state: {

list:[]

},

reducers: {//用來修改數據模型的state。

save(state, {payload:{data}}) { //涉及到es6的拆包寫法。

state.list =data;return{...state}

},

removeItem(state, {item}) {

state.list= state.list.filter(function(lItem) {return item.id !==lItem.id

});return{...state}

}

},

effects: {//effects指的是涉及到異步請求的方法。通常用來調用服務獲取數據。這里要注意如果effects的方法名與reducers中存在重復的話容易造成死循環。

*fetch(payload,{put, call}) {

const data=yield call(userService.fatchData);

yield put({type:"save", payload: data})

},*fetchRemoveItem({item},{put,call}){

const result=yield call(userService.fetchRemoveItem,item.id);if(result){

console.log(true);

yield put({type:"removeItem",item})

}else{

console.log(false);

}

}

},

subscriptions: {//觸發器。setup表示初始化即調用。其他用法見官方文檔。https://github.com/sorrycc/blog/issues/62

setup({dispatch}) {

dispatch({type:'fetch'})

}

}

}

編寫完畢后不要忘了在src/index.js中注冊數據模型:

app.model(require('./models/users').default);

編寫服務接口:(src/services/userService.js)

import request from "../utils/request";

exportfunctionfatchData() {return request("/api/users")

}

exportfunctionfetchRemoveItem(query) {

console.log(query);return true}

這里涉及到mock數據。方法為修改根目錄下的.webpackrc文件:

{"proxy": {"/api": {"target": "http://jsonplaceholder.typicode.com/","changeOrigin": true,"pathRewrite": {"^/api": ""}

}

}

}

接下來編寫組件:

先從路由組件開始:

import {connect} from 'dva'import ListBody from"../components/ListBody"import React from"react";

class List extends React.Component {

render() {return( //將自身的props傳給子組件。連接之后的組件可以擁有dispatch、索引后的數據模型。

)

}

}function mapStateToProps(state) { //將數據模型索引到props。

return{users:state.users}

}

exportdefault connect(mapStateToProps)(List) //將組件與數據模型相連接。

這里要重點說明:dispatch就是在connect的時候傳入的,用來做組件與數據模型之間的交互。

之后是ListBody組件:

import React from 'react';

import {Link} from'dva/router'class ListBody extends React.Component{removeUserItem(item){this.props.dispatch({type:"users/fetchRemoveItem",item}) //通過props獲取dispatch方法,users表示數據模型(namespace),fetchRemoveItem表示reducers或者effects。

}

render(){

const that= this;let userList=[];

let userData= this.props.users.list; //users:數據模型,list:數據模型中的stateif (userData.length>=1){

userData.forEach(function(item, index) {

userList.push(

{item.name})

})

}return(

請嘗試點擊條目。

{userList}

)

}

}

exportdefault ListBody;

完畢后添加路由。

import React from 'react';

import { Router, Route, Switch,Redirect } from'dva/router';import list from'./routes/list'

functionRouterConfig({ history }) {return(

);

}

exportdefault RouterConfig;

總結

以上是生活随笔為你收集整理的dva的用法_dva.js 用法详解:列表展示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91全免费 | 国产情侣在线视频 | 青青草久久爱 | aaaaa级少妇高潮大片免费看 | 菲律宾av| www.天天干 | 亚洲天堂av线| 一区在线不卡 | 91无套直看片红桃 | 毛茸茸日本熟妇高潮 | 国产精品久久777777毛茸茸 | 欧美经典一区 | 欧美日韩五月天 | 久久久精选 | 女生张开腿让男生插 | 国产五月天婷婷 | 亚洲色偷偷综合亚洲av伊人 | 亚洲国产爱 | 国内精品国产成人国产三级 | 请用你的手指扰乱我吧 | 男女www视频| 精品福利视频一区二区 | 欧洲视频在线观看 | 青青青青青操 | 狠狠干天天干 | 色多多在线观看 | 又粗又猛又爽又黄少妇视频网站 | 国产成人av在线播放 | 丁香一区二区三区 | 校园春色av| 日韩精品播放 | 欧美少妇色图 | 国产区精品| 午夜精品偷拍 | 午夜亚洲aⅴ无码高潮片苍井空 | 中国丰满人妻videoshd | 青青草视频国产 | 久久窝窝 | 美女视频黄频视频大全 | 日韩在线免费 | 欧美人与按摩师xxxx | 国产精品第三页 | 日韩你懂的 | 国产精品亚洲lv粉色 | 欧美成人免费一级人片100 | 日韩在线高清 | 亚洲精品中字 | 亚洲最色网站 | 老司机免费精品视频 | 亚洲黄色在线免费观看 | 亚洲xxxx天美 | 日剧大尺度床戏做爰 | 999精彩视频 | 国产13页| 视频在线 | 精品一区二区成人免费视频 | 欧美另类视频 | 在线免费观看视频网站 | 黑人玩弄人妻一区二区三区 | 99在线精品免费视频 | 91视频在线观看 | 国产精品久久久久高潮 | 中文字幕乱码在线 | 老司机一区 | 91久久国产综合久久 | 婷婷综合精品 | 国产精品成人久久久久久久 | 黄色免费观看网站 | 日韩性猛交ⅹxxx乱大交 | 欧美激情网| 国产一区二区不卡视频 | 欧美一级做a爰片免费视频 成人激情在线观看 | 男女性网站 | 成人日韩欧美 | 成人网址在线观看 | 婷婷综合一区 | 久久视频免费观看 | 国产精品不卡在线观看 | 久久国产精品综合 | 亚洲综合在线观看视频 | 亚洲免费一区视频 | 国产精品久久久久久亚洲毛片 | 日韩欧美影院 | 亚洲www | 黑丝久久 | 天天操婷婷 | 黄色片中国| 色妞综合网 | 91官网视频 | 日本网站黄色 | 成人av日韩 | 田中瞳av | 人妻无码中文久久久久专区 | 不卡av在线 | 亚洲av乱码一区二区 | 国产又色又爽又黄又免费 | 久久精品一 | 天天干天天拍 | 国产精品美女视频 |