最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用React代碼動(dòng)態(tài)生成柵格布局的方法

 更新時(shí)間:2020年05月24日 09:05:54   作者:Dotnet9個(gè)人博客  
這篇文章主要介紹了使用React簡(jiǎn)短代碼動(dòng)態(tài)生成柵格布局的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

作為 TerminalMACS 的一個(gè)子進(jìn)程模塊 - React Web管理端,使用Ant Design Pro作為框架。

本文應(yīng)用到的知識(shí)1.樣式文件less中方法的使用2.for循環(huán)創(chuàng)建按鈕和柵格布局(flex布局)

1. 最終效果及源碼鏈接

作為前端新手的我,做下面這個(gè)簡(jiǎn)單功能花了好幾天時(shí)間,問(wèn)了不少前端大佬(大佬們應(yīng)該要不到半個(gè)小時(shí),慚愧慚愧),現(xiàn)在回想問(wèn)的問(wèn)題都很基礎(chǔ)(有點(diǎn)丟人,哈哈),多謝了哦。

先看看效果

點(diǎn)擊瀏覽源碼:開(kāi)源項(xiàng)目對(duì)應(yīng)源碼

2. 代碼簡(jiǎn)單講解

2.1 TypeScript代碼

./src/pages/Grid/DynamicGridPage/index.tsx

import React from 'react';
import styles from './index.less';
import { Button, Card } from 'antd';

interface IVideoPanelProps {}

interface IVideoPanelSate {
 cardCount: number;
}

class VideoPanel extends React.Component<IVideoPanelProps, IVideoPanelSate> {
 constructor(props: Readonly<{}>) {
  super(props);
  this.state = {
   cardCount: 1,
  };
 }

 // 動(dòng)態(tài)生成Grid
 createCard() {
  var res = [];
  for (var i = 0; i < this.state.cardCount * this.state.cardCount; i++) {
   res.push(<Card className={styles['video_panel' + this.state.cardCount]} />);
  }
  return res;
 }

 // 動(dòng)態(tài)生成控制按鈕
 createControlButon() {
  var res = [];
  const btnCount = 4;
  for (let i = 1; i <= btnCount; i++) {
   res.push(
    <Button
     key={i}
     className={styles['control_Button']}
     type="primary"
     onClick={() => {
      this.changeCardCount(i);
     }}
    >
     {i + '*' + i}
    </Button>,
   );
  }

  return res;
 }

 // 修改顯示的格子數(shù)
 changeCardCount(count: any) {
  this.setState({
   cardCount: count,
  });
 }

 render() {
  return (
   <div className={styles.main}>
    <div className={styles.main_child}>
     <div className={styles.left}>
      <div className={styles.left_top}></div>
      <div className={styles.left_bottom}></div>
     </div>
     <div className={styles.right}>
      <div className={styles.right_top}>{this.createCard()}</div>
      <div className={styles.right_bottom}>{this.createControlButon()}</div>
     </div>
    </div>
   </div>
  );
 }
}

export default VideoPanel;

代碼不多,for循環(huán)生成控制按鈕及柵格(未使用antd的Grid布局,簡(jiǎn)單使用div布局,flex很香),簡(jiǎn)化了很多代碼。

2.2 less樣式文件

./src/pages/Grid/DynamicGridPage/index.less

@import '~antd/es/style/themes/default.less';

.main {
 position: absolute;
 width: 100%;
 height: 100%;
 background: red;
}

@ptcWidth: 250px;
@btnAreaHeight: 50px;
@videoPanelMargin: 5px;

.main_child {
 display: flex;
 height: 100%;
}

.left {
 width: @ptcWidth;
 height: 100%;
 background: green;
}

.left_top {
 width: 100%;
 height: @ptcWidth;
 background: orange;
}

.left_bottom {
 width: 100%;
 height: calc(100% - @ptcWidth);
 background: #ccc;
}

.right {
 width: calc(100% - @ptcWidth);
 height: 100%;
 background: #f60;
}

.right_top {
 width: 100%;
 height: calc(100% - @btnAreaHeight);
 background: blue;
 display: flex;
 flex-wrap: wrap;
}

.right_bottom {
 width: 100%;
 height: @btnAreaHeight;
 background: #f90;
}

.control_Button {
 margin: 2px;
}

.video_panel(@count) {
 width: calc(100% / @count - @videoPanelMargin * 2);
 height: calc(100% / @count - @videoPanelMargin * 2);
 margin: @videoPanelMargin;
}

// 1*1
.video_panel1 {
 .video_panel(1);
}

// 2*2
.video_panel2 {
 .video_panel(2);
}

// 3*3
.video_panel3 {
 .video_panel(3);
}

// 4*4
.video_panel4 {
 .video_panel(4);
}

1 * 1、2 * 2、3 * 3、4 * 4 生成的每個(gè)柵格的樣式格式類(lèi)似,只是長(zhǎng)、寬比例區(qū)別,定義了方法(.video_panel(@count)),這是less的語(yǔ)法,極大的擴(kuò)展了css功能,非常方便。

3. 關(guān)于TerminalMACS及本React Web管理端

3.1. TermainMACS

多終端資源管理與檢測(cè)系統(tǒng)(后續(xù)可能轉(zhuǎn)而寫(xiě)成博客系統(tǒng)),包含多個(gè)子進(jìn)程模塊,目前開(kāi)發(fā)了Xamarin.Forms客戶(hù)端、WPF管理端、React Web管理端、.NET Core WEB API服務(wù)端,下一步繼續(xù)完善WPF管理端(IdentityServer 4研究中)。

3.2. React Web管理端

作為T(mén)erminalMACS系統(tǒng)的一個(gè)子進(jìn)程模塊,目前使用 Ant Design Pro 搭建了框架,在平時(shí)工作中,添加一些測(cè)試Demo。

4. 關(guān)于項(xiàng)目開(kāi)源開(kāi)源項(xiàng)目地址:https://github.com/dotnet9/TerminalMACS

官方網(wǎng)站:https://dotnet9.com

總結(jié)

到此這篇關(guān)于使用React代碼動(dòng)態(tài)生成柵格布局的方法的文章就介紹到這了,更多相關(guān)react 動(dòng)態(tài)生成柵格布局內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React組件useReducer的講解與使用

    React組件useReducer的講解與使用

    在React函數(shù)式組件中,我們可以通過(guò)useState()來(lái)創(chuàng)建state,這種state創(chuàng)建方式會(huì)給我們返回兩個(gè)東西state和setState()。
    2023-04-04
  • react中監(jiān)聽(tīng)props的改變方式

    react中監(jiān)聽(tīng)props的改變方式

    這篇文章主要介紹了react中監(jiān)聽(tīng)props的改變方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • React Umi國(guó)際化配置方法

    React Umi國(guó)際化配置方法

    這篇文章主要介紹了React Umi國(guó)際化配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-04-04
  • ReactJS入門(mén)實(shí)例教程詳解

    ReactJS入門(mén)實(shí)例教程詳解

    React.render?是?React?的最基本方法,用于將模板轉(zhuǎn)為?HTML?語(yǔ)言,并插入指定的?DOM?節(jié)點(diǎn),這篇文章主要介紹了ReactJS入門(mén)實(shí)例教程,需要的朋友可以參考下
    2022-06-06
  • React-Native中一些常用組件的用法詳解(一)

    React-Native中一些常用組件的用法詳解(一)

    這篇文章主要跟大家分享了關(guān)于React-Native中一些常用組件的用法,其中包括View組件、Text組件、Touchable類(lèi)組件、TextInput組件以及Image組件的使用方法,分別給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • React?component.forceUpdate()強(qiáng)制重新渲染方式

    React?component.forceUpdate()強(qiáng)制重新渲染方式

    這篇文章主要介紹了React?component.forceUpdate()強(qiáng)制重新渲染方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • React跨端動(dòng)態(tài)化之從JS引擎到RN落地詳解

    React跨端動(dòng)態(tài)化之從JS引擎到RN落地詳解

    這篇文章主要為大家介紹了React跨端動(dòng)態(tài)化之從JS引擎到RN落地,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • react實(shí)現(xiàn)阻止父容器滾動(dòng)

    react實(shí)現(xiàn)阻止父容器滾動(dòng)

    這篇文章主要介紹了react實(shí)現(xiàn)阻止父容器滾動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • react數(shù)據(jù)管理機(jī)制React.Context源碼解析

    react數(shù)據(jù)管理機(jī)制React.Context源碼解析

    這篇文章主要為大家介紹了react數(shù)據(jù)管理機(jī)制React.Context源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • React實(shí)現(xiàn)組件間通信的幾種方式小結(jié)

    React實(shí)現(xiàn)組件間通信的幾種方式小結(jié)

    在React應(yīng)用中,組件間的通信是一個(gè)基礎(chǔ)而關(guān)鍵的概念,理解和掌握不同組件之間的通信方式,可以幫助我們構(gòu)建出更加模塊化、可維護(hù)和可擴(kuò)展的應(yīng)用程序,React提供了多種組件通信的方法,本文給大家詳細(xì)的介紹了這些方法,需要的朋友可以參考下
    2024-07-07

最新評(píng)論

天台县| 凉山| 奉新县| 卢氏县| 无为县| 花莲县| 衡东县| 阳原县| 黄浦区| 瑞丽市| 通化市| 崇明县| 射阳县| 嘉黎县| 雅江县| 堆龙德庆县| 古浪县| 鄂州市| 囊谦县| 陇南市| 浦江县| 丰镇市| 东宁县| 涞水县| 商洛市| 辛集市| 定襄县| 共和县| 西乌| 北海市| 昭通市| 长岭县| 白水县| 竹北市| 龙门县| 孝感市| 观塘区| 舟山市| 合阳县| 河津市| 成安县|