1. 程式人生 > >初學者使用react+antd實現表格+彈窗

初學者使用react+antd實現表格+彈窗

初學者使用react+antd實現表格+彈窗

github地址: https://github.com/YepFury/react-table-demo
趁著專案間歇,試著寫了一下未接觸的react,找了一下資料,決定使用ant-design元件庫,因為基本是完全的react新手,因此對著官網教程及查詢資料簡單的實現了一下使用vue實現過的表格+彈窗。

準備

Ant-Design

環境安裝

npm install yarn -g
npm install create-react-app -g

建立專案

create-react-app table-demo

工具會自動初始化一個腳手架並安裝 React 專案的各種必要依賴

顯示配置(按照個人理解是否需要)

yarn eject  && y

安裝依賴

雖然腳手架回安裝一些依賴,但是缺了必要的元件庫以及一些常用庫

yarn add antd
yarn add axios

啟動專案

cd table-demo
yarn start

其他

因為習慣使用less,所以還是打算在react中使用less語法,在專案中配置less語法的方法除了antd官網介紹的自定義主題,使用react-app-rewrite-less外掛外,還有就是在對應的webpack配置檔案中修改,即修改webpack.config.dev.js

webpack.config.prod.js,修改如下:

  1. 修改webpack.config.dev.js
// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
+ const lessRegex = /\.(less)$/;
+ const lessModuleRegex = /\.module\.(less)$/
; //... module.exports = { module: { rules: [ + { + test: lessRegex, + exclude: lessModuleRegex, + use: getStyleLoaders({importLoaders: 2}, 'less-loader') + }, + { + test: lessModuleRegex, + use: getStyleLoaders( + { + importLoaders: 2, + modules: true, + getLocalIdent: getCSSModuleLocalIdent, + }, + 'less-loader' + ), + }, ] } }
  1. 修改webpack.config.prod.js
// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
+ const lessRegex = /\.(less)$/;
+ const lessModuleRegex = /\.module\.(less)$/;

//...

module.exports = {
    module: {
        rules: [
          + {
          +     test: lessRegex,
          +     exclude: lessModuleRegex,
          +     loader: getStyleLoaders(
          +         {
          +             importLoaders: 2,
          +             sourceMap: shouldUseSourceMap,
          +         },
          +         'less-loader'
          +     ),
          + },
          + {
          +     test: lessModuleRegex,
          +     loader: getStyleLoaders(
          +         {
          +             importLoaders: 2,
          +             sourceMap: shouldUseSourceMap,
          +             modules: true,
          +             getLocalIdent: getCSSModuleLocalIdent,
          +         },
          +         'less-loader'
          +     ),
          + },
        ]
    }
}

開發

建立檔案目錄

image

建立檔案

  1. /services/request.js
import axios from 'axios';

const request = axios.create({
    baseURL: 'http://192.168.x.x:7788/api',
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json'
    }
})
request.interceptors.request.use(config => {
    return config;
}, error => {
    return new Promise.inject(error);
})

request.interceptors.response.use(response=>{
    return response.data
},error=>{
    new Promise.inject(error)
})

export default request;
  1. /services/api.js 將請求方法進行封裝,統一管理
import request from './request';

export async function getTableData(params) {
    return request.get('/table/allData', {
        params: params
    })
}
// post  all

引入antd

修改 src/App.js,引入 antd

import React, { Component } from 'react';

修改 src/App.css,在檔案頂部引入 antd/dist/antd.css

@import '~antd/dist/antd.css';

引入完之後按照自己的需要引入不同的元件使用即可,過程可參照antd官方文件。

效果圖

image

相關推薦

初學者使用react+antd實現表格+

初學者使用react+antd實現表格+彈窗 github地址: https://github.com/YepFury/react-table-demo 趁著專案間歇,試著寫了一下未接觸的react,找了一下資料,決定使用ant-design元件庫,因為基本是完全的react新手,因此對

封裝React AntD的dialog元件

前一段時間分享了基於vue和element所封裝的彈窗元件(封裝Vue Element的dialog彈窗元件),今天就來分享一個基於react和antD所封裝的彈窗元件,反正所使用的技術還是那個技術,情況還是那個情況。只是基於vue所封裝的彈窗元件和基於react所封裝的彈窗元件還是有很大差別的。一樣的是封裝

利用js實現popup

settings element type 路由 數據庫 點擊 ack get 事件 簡單實現一個通過一個網頁,點擊生成一個彈窗,然後點擊保存之後自動關閉彈窗的功能。 首先在settings文件中寫上兩條對應的路由關系。 1 urlpatterns = [ 2

CSS實現tost效果

html: <div class="black-and-white-b"> <div class="hintBox"></div> </div>  css: .bla

react+antd實現樹形選單展示(後臺使用java)

1.資料庫表設計(我使用的是單表一對多,裡面需要有一個pid指向父層級的id) 2.在後臺獲取資料的時候,使用的實體類為此種形式 public class UserTree { private Integer id; private String name; p

使用風格的Activity實現萬能+Service中隱式啟動Activity實現Service中彈

一、使用彈窗風格的Activity先看效果圖程式碼實現:1.在values資料夾的styles.xml中定義彈窗style<style name="DialogStyle" parent="Base.Theme.AppCompat.Dialog"> <!--

react + antd 實現列印功能(踩了不少坑)

最近在有網頁列印需求,嘗試了一下react的列印功能,遇到了不少的坑: 1.react本身有一些列印的元件,但都不好用,都是基於window.print(),但是window.print()如果直接列印的話,沒有樣式。處理直接當前網頁的body設定為你要列印的區域,但是當你取消列印的時候你會發現整個網頁都被

react + antd 實現打印功能(踩了不少坑)

set wid 但是 pan ets req 問題: 我們 posit 最近在有網頁打印需求,嘗試了一下react的打印功能,遇到了不少的坑: 1.react本身有一些打印的組件,但都不好用,都是基於window.print(),但是window.print()如果直接打印

c語言實現無限

#include <windows.h> #pragma comment (lib, "User32.lib") int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow

JDBC:Servlet返回資訊到頁面,實現Js效果

//返回資訊,實現頁面彈窗 response.setCharacterEncoding("utf-8"); //防止ajax返回的資料亂碼(有中文的情況下,就必須要寫) response.setCont

論如何用Vue實現一個-一個簡單的元件實現

前言 最近在使用element-ui框架,用到了Dialog對話方塊元件,大致實現的效果,跟我之前自己在移動端專案裡面弄的一個彈窗元件差不太多。然後就想著把這種彈窗元件的實現方式與大家分享一下,下面本文會帶著大家手摸手實現一個彈窗元件。 本文主要內容會涉及到

js實現window 小案例

首先大家先看一下這個小案例的效果圖,可能大家剛看到下面這張效果圖的時候有點小小的疑惑,小編在這向大家解釋下,所謂的window彈窗事件就是在圖片的左邊有個選擇按鈕,當我們點選該按鈕時候就會彈出右邊的圖

jquery 實現

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html

js實現簡單效果

程式碼 <!DOCTYPE html> <html> <head> <title></title> <script src

DIV+CSS實現中間效果

css程式碼 <style type="text/css" > body{ font-family: "Microsoft YaHei" ! important; } /*灰色遮

React native 自定義(android使用原生ios)

android端執行效果圖(ios同樣適用): 1.自定義彈窗原始碼:    import React, { Component } from 'react'; import { StyleSheet, Text, View, Modal

JQuery實現效果

這是筆者實際專案中的一個需求,我們先來看看特效。 頁面載入時彈出視窗,點選關閉按鈕,視窗消失並呈現動畫效果。 實現程式碼如下: <!DOCTYPE HTML PUBLIC "-//W3C

封裝react antd表格table元件

封裝元件是為了能在開發過程中高度複用功能和樣式相似的元件,以便我們只關注於業務邏輯層的處理,提高開發效率,提高逼格,降低程式碼重複率,降低勞動時間,減少加班的可能。 本次元件的封裝採用了函式式元件即無狀態元件的方式來提高頁面渲染效能,由於無狀態元件在資料變更後不會主動觸發頁面的重新渲染,所以本次的封裝也用到

基於React.js網頁版|react pc端自定義對話方塊元件RLayer

基於React.js實現PC桌面端自定義彈窗元件RLayer。 前幾天有分享一個Vue網頁版彈框元件,今天分享一個最新開發的React PC桌面端自定義對話方塊元件。 RLayer 一款基於react.js開發的PC端自定義Layer彈出框元件。支援超過30+引數自由配置,通過輕巧的佈局設計、極簡的呼叫方式來

Nodejs擴展,實現消息

技術 tac fault etc 解決方法 font value nal rop 參考https://github.com/olalonde/node-notify的實現 模塊的C++代碼 node_gtknotify.cc #inclu