摘要:前言大家在做業(yè)務(wù)系統(tǒng)的時(shí)候,很多地方都是列表增刪改查,做這些功能占據(jù)了大家很長(zhǎng)時(shí)間,如果我們有類(lèi)似的業(yè)務(wù),半個(gè)小時(shí)就能做出一套那是不是很爽呢。我們這套框架對(duì)此做了下封裝,適合的小伙伴也可以借鑒封裝到自己的框架當(dāng)中去。
前言
大家在做業(yè)務(wù)系統(tǒng)的時(shí)候,很多地方都是列表增刪改查,做這些功能占據(jù)了大家很長(zhǎng)時(shí)間,如果我們有類(lèi)似的業(yè)務(wù),半個(gè)小時(shí)就能做出一套那是不是很爽呢。
這樣我們就可以有更多的時(shí)間學(xué)習(xí)一些新的東西。我們這套框架對(duì)此做了下封裝,適合的小伙伴也可以借鑒封裝到自己的框架當(dāng)中去。核心思想用的React
高階組件解耦,接下來(lái)我們看看怎么用。
導(dǎo)入我們的業(yè)務(wù)組件
import { BTable } from "bcomponents";
寫(xiě)好我們的頁(yè)面模板。調(diào)用BTable的高階組件BTable.tableEffectHoc,傳入url和columns參數(shù)就可以了,是不是很簡(jiǎn)單
@BTable.tableEffectHoc({ url: "/api/table/list", //url 參數(shù) columns: columns // table columns 參數(shù) }) class BasicTable extends React.Component { render() { return (基礎(chǔ) Table); } } export default BasicTable;
查看演示
創(chuàng)建list.js, 來(lái)配置和增強(qiáng)我們的table,注意我們需要使用Btable。
import { BTable } from "bcomponents"; class List extends React.Component { render() { return (); } } export default List;
寫(xiě)我們的頁(yè)面模板,完成創(chuàng)建和查詢(xún)的操作。我們這次用了BTable.Search和BTabLe.Create來(lái)快速完成我們的查詢(xún)和創(chuàng)建
import { BTable } from "bcomponents"; import { Row, Col, Input, Form } from "antd"; import ListTable from "./_components/list"; const Search = BTable.Search; const Create = BTable.Create; const FormItem = Form.Item; @BTable.tableEffectHoc({ url: "/api/table/list", BTable: ListTable, }) class BasicTable extends React.Component { render() { const {getData} = this.props; return (); } } export default BasicTable; |
{ ({getFieldDecorator}) => ( ) } {getFieldDecorator("name", { initialValue: "", validateFirst: true, rules: [ formValid.require(), formValid.name(), ], })( )}
這里的`BTable.Search`很簡(jiǎn)單,我們只需傳入getData屬性方法就可以完成查詢(xún)操作。 創(chuàng)建其實(shí)也很簡(jiǎn)單,配置`BTable.Create`的url和getData參數(shù)。然后只需在組件內(nèi)寫(xiě)我們的Form表單項(xiàng)就可以了,是不是很簡(jiǎn)單。 至此。我們的創(chuàng)建和查詢(xún)就完成了
添加編輯功能。編輯和刪除的操作在列表上,所以我們需要在list.js當(dāng)中去完成.添加BTable.Update模板
{ ({getFieldDecorator}) => ( ) } {getFieldDecorator("name", { initialValue: updateData.name, validateFirst: true, rules: [ formValid.require(), formValid.name(), ], })( )}
配置項(xiàng)也很簡(jiǎn)單,配置url,visible和getData就可以了,接著完善我們的FormItem就可以了。是不是很簡(jiǎn)單
添加刪除功能
BTable.Del({ url: `/api/table/${data.id}`, getData, })
這是最簡(jiǎn)單的了,傳一個(gè)url和getData就完成了。
查看演示
BTable文檔地址
線上演示地址:http://39.105.188.65:8080/system/channel
目前我正在開(kāi)發(fā)一個(gè)頭條的開(kāi)源項(xiàng)目??梢杂么说刂凡榭矗@個(gè)是用的真實(shí)的數(shù)據(jù)
結(jié)束語(yǔ)表格的增刪改查封裝已經(jīng)完成, 代碼已放到github上,大家可以自行查看umi-react。
如果覺(jué)得不錯(cuò),請(qǐng)start一下
我建了一個(gè)QQ群,大家加進(jìn)來(lái),可以一起交流。群號(hào) 787846148
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108776.html
摘要:經(jīng)過(guò)一周左右的時(shí)間完成了基礎(chǔ)組件的編寫(xiě)。配置涵蓋了目前的業(yè)務(wù)場(chǎng)景的基本需求,但是可擴(kuò)展性很低。最終決定采用的生態(tài)鏈來(lái)解決上述遇到的問(wèn)題。在指定的路徑下寫(xiě)入對(duì)應(yīng)的文件。大綱 遇到的問(wèn)題場(chǎng)景及解決方案對(duì)比 什么是babel? 解決過(guò)程 目前遺留的問(wèn)題 目前實(shí)現(xiàn)功能API 參考 遇到的問(wèn)題場(chǎng)景及解決方案對(duì)比 我們目前采用的是antd + react(umi)的框架做業(yè)務(wù)開(kāi)發(fā)。在業(yè)務(wù)開(kāi)發(fā)過(guò)程中會(huì)...
摘要:配置涵蓋了目前的業(yè)務(wù)場(chǎng)景的基本需求,但是可擴(kuò)展性很低。最終決定采用的生態(tài)鏈來(lái)解決上述遇到的問(wèn)題。在指定的路徑下寫(xiě)入對(duì)應(yīng)的文件。 大綱 遇到的問(wèn)題場(chǎng)景及解決方案對(duì)比 什么是babel? 解決過(guò)程 目前遺留的問(wèn)題 目前實(shí)現(xiàn)功能API 參考 遇到的問(wèn)題場(chǎng)景及解決方案對(duì)比 我們目前采用的是antd + react(umi)的框架做業(yè)務(wù)開(kāi)發(fā)。在業(yè)務(wù)開(kāi)發(fā)過(guò)程中會(huì)有較多頻繁出現(xiàn)并且相似度很高的場(chǎng)...
摘要:序列文章從項(xiàng)目中由淺入深的學(xué)習(xí)微信小程序和快應(yīng)用從項(xiàng)目中由淺入深的學(xué)習(xí)從項(xiàng)目中由淺入深的學(xué)習(xí)前言的出現(xiàn)前端已經(jīng)可以用一把梭從前端寫(xiě)到后臺(tái)。 showImg(https://segmentfault.com/img/bVbrRI5?w=1920&h=1080); 序列文章 從項(xiàng)目中由淺入深的學(xué)習(xí)vue,微信小程序和快應(yīng)用 (1)從項(xiàng)目中由淺入深的學(xué)習(xí)react (2)從項(xiàng)目中由淺入深的學(xué)...
閱讀 2821·2023-04-25 18:46
閱讀 711·2021-11-19 09:40
閱讀 2077·2021-09-28 09:36
閱讀 3384·2021-09-10 11:11
閱讀 3464·2019-08-30 15:55
閱讀 1803·2019-08-30 15:54
閱讀 2598·2019-08-29 16:16
閱讀 3542·2019-08-29 15:08