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

React項(xiàng)目中className運(yùn)用及問題解決

 更新時(shí)間:2022年12月15日 09:18:10   作者:一條會(huì)coding的Shark  
這篇文章主要為大家介紹了React項(xiàng)目中className運(yùn)用及問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

拋出問題

className 大家都用過吧,用它在 react 項(xiàng)目中設(shè)置樣式。它的用法很簡(jiǎn)單,除了可以設(shè)置一個(gè)樣式外,react 中也可以使用 className 引入多個(gè)類樣式。

這次在寫項(xiàng)目的時(shí)候,碰到一個(gè)非常小但是當(dāng)時(shí)卻一直解決不了的問題。后面在復(fù)盤的時(shí)候?qū)⑺鉀Q了。問題大致是這樣的:

有兩個(gè)活動(dòng)頁(yè),每個(gè)活動(dòng)頁(yè)上都有一個(gè)活動(dòng)規(guī)則圖標(biāo)來彈出活動(dòng)規(guī)則,活動(dòng)規(guī)則圖標(biāo)距離頂部會(huì)有一個(gè)值。現(xiàn)在問題就是這個(gè)活動(dòng)規(guī)則在這兩個(gè)活動(dòng)頁(yè)距離頂部的這個(gè)值是不一樣的,但是我已經(jīng)將這個(gè)活動(dòng)規(guī)則圖標(biāo)做成了組件,并在這兩個(gè)活動(dòng)頁(yè)里都調(diào)用了它,從而導(dǎo)致兩個(gè)頁(yè)面的樣式會(huì)相同。如下圖所示:

解決問題

這個(gè)問題不算很大,但是屬于細(xì)節(jié)問題。就和我的組長(zhǎng)所說的一樣,一個(gè)項(xiàng)目應(yīng)該要做到先完成再完美。所以我當(dāng)時(shí)的解決方法是再寫一個(gè)活動(dòng)規(guī)則組件,只是將距離頂部的值做出修改即可。效果確實(shí)是達(dá)到了,不過在最后復(fù)盤代碼的時(shí)候,組長(zhǎng)注意到了這兩個(gè)組件,并開始詢問我為什么這樣做。

組長(zhǎng):Rule_1Rule_2 這兩個(gè)組件是什么意思,我看它們沒有很大的區(qū)別呀。

我便簡(jiǎn)單說了一下緣由。

組長(zhǎng)接著說:你忘了組件是什么嗎?一個(gè) CSS 樣式值不同就大費(fèi)周章地新增一個(gè)組件,這豈不是太浪費(fèi)了。再去想想其他方案。

通過這一番談話我想起了組件化思想的運(yùn)用,發(fā)現(xiàn)之前解決的這個(gè)小問題解決的并不夠好。于是,我就帶著組件化思想又來重新完善它。

我重新寫了一個(gè) demo 代碼,將主要內(nèi)容和問題在 demo 代碼中體現(xiàn)出來。下面是原版活動(dòng)規(guī)則組件 demo 代碼,之后的代碼都是基于 demo 代碼完成的

import React from "react";
import "./index.css";
const Header = ({ onClick }) => {
  return (
    <>
      <div className="container_hd">
        <div
          className='affix'
          onClick={onClick}
        ></div>
      </div>
    </>
  );
};
export default Header;

組件化思想

我自己?jiǎn)栕约海杭热灰呀?jīng)寫好了一個(gè)活動(dòng)規(guī)則組件,為什么僅僅因?yàn)橐粋€(gè)樣式值的不同而去新增一個(gè)功能一樣的組件?很顯然,這種方法是最笨的方案。既然是組件,那就應(yīng)該要有復(fù)用性,或者說只需在原有的基礎(chǔ)上稍加改動(dòng)就可達(dá)到效果。

這是樣式的問題,因此要從根本上解決問題。單純地修改 CSS 樣式肯定不行,因?yàn)閮蓚€(gè)頁(yè)面兩個(gè)不同的樣式。

className運(yùn)用

className 就不用多介紹了,經(jīng)常能使用,咱們直接來看如何解決問題。在這里我定義了一個(gè) Value 值,用來區(qū)分是在哪個(gè)頁(yè)面的,比如分別有提交頁(yè)和成功頁(yè),我在成功頁(yè)設(shè)置一個(gè) Value 值,,然后將 Value 值傳入到活動(dòng)規(guī)則組件,那么在活動(dòng)規(guī)則組件里只需要判斷 Value 值是否等于成功頁(yè)的 Value 值即可。在 className 處做一個(gè)三元判斷,如下所示:

className={`affix_${Value === "0" ? "main" : "submit"}`}

相當(dāng)于如果 Value 等于0的時(shí)候類名為affix_main,否則為affix_submit。最后再 css 將樣式完善即可。完整代碼可以參考如下:

  • 成功頁(yè)組件
import Header from "./components/Header";
const Success = () => {
  const Value = "0";
  return (
    <div style={{ backgroundColor: "purple", width: "375px", height: "670px" }}>
      <Header Value={Value}></Header>
    </div>
  );
};
export default Success;
  • 活動(dòng)規(guī)則組件
import React from "react";
import "./index.css";
const Header = ({ onClick, Value }) => {
  return (
    <>
      <div className="container_hd">
        <div
          className={`affix_${Value === "0" ? "main" : "submit"}`}
          onClick={onClick}
        ></div>
      </div>
    </>
  );
};
export default Header;
  • 活動(dòng)規(guī)則組件樣式
.container_hd {
  width: 100%;
}
.affix_main {
  position: absolute;
  top: 32px;
  right: -21px;
  z-index: 9;
  width: 84px;
  height: 26px;
  background: url('./assets/rule.png');
  background-size: contain;
  background-repeat: no-repeat;
}
.affix_submit {
  position: absolute;
  top: 12px;
  right: -21px;
  z-index: 9;
  width: 84px;
  height: 26px;
  background: url('./assets/rule.png');
  background-size: contain;
  background-repeat: no-repeat;
}

通過對(duì)比效果圖可以看出,兩者的效果確實(shí)發(fā)生變化。完成之后,我心里在想:為什么當(dāng)時(shí)就沒想出這個(gè)簡(jiǎn)單易行的方案呢?動(dòng)態(tài)判斷并設(shè)置類名,至少比最開始的新增一個(gè)組件的方法高級(jí)多了。

總結(jié)問題

通過這個(gè) className 的靈活使用,讓我對(duì) className 的用法有了更進(jìn)一步的掌握,也不得不感嘆組件化思想的廣泛運(yùn)用,這里最大程度地將組件化思想通過className 發(fā)揮出來。

因此,希望通過這個(gè)問題,來學(xué)會(huì) className 的靈活用法,并理解好組件化思想。

以上就是React項(xiàng)目中className運(yùn)用及問題解決的詳細(xì)內(nèi)容,更多關(guān)于React項(xiàng)目className運(yùn)用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React構(gòu)建簡(jiǎn)潔強(qiáng)大可擴(kuò)展的前端項(xiàng)目架構(gòu)

    React構(gòu)建簡(jiǎn)潔強(qiáng)大可擴(kuò)展的前端項(xiàng)目架構(gòu)

    這篇文章主要為大家介紹了React構(gòu)建簡(jiǎn)潔強(qiáng)大可擴(kuò)展的前端項(xiàng)目架構(gòu)實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • react-router-dom之異步加載路由方式

    react-router-dom之異步加載路由方式

    這篇文章主要介紹了react-router-dom之異步加載路由方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • react-diagram 序列化Json解讀案例分析

    react-diagram 序列化Json解讀案例分析

    今天帶來大家學(xué)習(xí)react-diagram 序列化Json解讀的相關(guān)知識(shí),本文通過多種案例給大家分析序列化知識(shí),通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2021-05-05
  • React Native按鈕Touchable系列組件使用教程示例

    React Native按鈕Touchable系列組件使用教程示例

    這篇文章主要為大家介紹了React Native按鈕Touchable系列組件使用教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • react類標(biāo)簽的生命周期詳解

    react類標(biāo)簽的生命周期詳解

    在React類組件中,生命周期方法是非常重要的概念,它們?cè)试S我們?cè)诮M件的不同階段執(zhí)行代碼,這包括在組件掛載、更新以及卸載時(shí)執(zhí)行的生命周期方法,本文通過介紹React類組件中的生命周期方法,旨在幫助開發(fā)者深入理解組件的生命周期管理
    2024-11-11
  • React 自動(dòng)聚焦字段使用詳解

    React 自動(dòng)聚焦字段使用詳解

    這篇文章主要為大家介紹了React 自動(dòng)聚焦字段使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • React中props驗(yàn)證不足的問題及解決方案

    React中props驗(yàn)證不足的問題及解決方案

    在?React?開發(fā)中,props?是組件間通信的重要方式,通過?props,父組件可以向子組件傳遞數(shù)據(jù)和回調(diào)函數(shù),然而,如果對(duì)?props?的驗(yàn)證不足,可能會(huì)導(dǎo)致類型錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤或難以調(diào)試的問題,本文將探討?React?中?props?驗(yàn)證不足的常見問題,并提供解決方案
    2025-03-03
  • 使用Redux處理異步問題

    使用Redux處理異步問題

    這篇文章主要介紹了使用Redux處理異步問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • React?Native中原生實(shí)現(xiàn)動(dòng)態(tài)導(dǎo)入的示例詳解

    React?Native中原生實(shí)現(xiàn)動(dòng)態(tài)導(dǎo)入的示例詳解

    在React?Native社區(qū)中,原生動(dòng)態(tài)導(dǎo)入一直是期待已久的功能,在這篇文章中,我們將比較靜態(tài)和動(dòng)態(tài)導(dǎo)入,學(xué)習(xí)如何原生地處理動(dòng)態(tài)導(dǎo)入,以及有效實(shí)施的最佳實(shí)踐,希望對(duì)大家有所幫助
    2024-02-02
  • 關(guān)于React狀態(tài)管理的三個(gè)規(guī)則總結(jié)

    關(guān)于React狀態(tài)管理的三個(gè)規(guī)則總結(jié)

    隨著 JavaScript 單頁(yè)應(yīng)用開發(fā)日趨復(fù)雜,JavaScript 需要管理比任何時(shí)候都要多的 state (狀態(tài)),這篇文章主要給大家介紹了關(guān)于React狀態(tài)管理的三個(gè)規(guī)則,需要的朋友可以參考下
    2021-07-07

最新評(píng)論

年辖:市辖区| 邵武市| 中西区| 翁源县| 泾阳县| 平南县| 临洮县| 台南县| 福海县| 鄂托克旗| 治多县| 太康县| 龙海市| 慈利县| 吉安县| 亳州市| 乡宁县| 绥中县| 姚安县| 许昌县| 长春市| 清涧县| 定襄县| 南木林县| 新郑市| 阳谷县| 绥滨县| 自治县| 北京市| 廊坊市| 那坡县| 西藏| 通州区| 图片| 淳安县| 榕江县| 三原县| 宝鸡市| 金乡县| 和平区| 延安市|