黑馬Day01-03集開始

03集

JSX

jsx里面可以寫 表達式,表達式里面會返回一個值

js語法的擴展,需要babel解析才能夠在瀏覽器運行
在這里插入圖片描述

語法

使用花括號  {} ,在里面進行編寫jsx代碼

04集

高頻場景

使用引號傳遞字符串
使用js變量
函數調用和方法調用
使用js對象.js自帶的一些對象或new出來的對象

{"this is msg"}
{count}
{getName()}
{new Date().getDate()}
// 使用js對象 {{color:'red',ackground:'green'}}

05集 jsx實現列表渲染

通過 js 的map 方法進行遍歷,這里不能夠使用for循環
因為 for 不返回值 但是 map 有返回值

{list.map(item => <li key={item.id}>{item.name}</li>)}

這個值可以是字符串,也可以是數字 ,只要唯一即可

06集 條件渲染

這里通過 && (邏輯與), ? : (三元表達式) 實現

{fla &7 <span>this is span</span>}
{loading ? <span>loading......</span> : <span>this is span</span>}

07集 復雜情況-非常多元素

控制非常多的元素,決定是否顯示以及顯示哪些

通過函數實現.通過自定義函數 + if 判斷語句
// 在 APP.js 里面書寫
const articleType = 1
function getArticleTem(){if(articleTyp === 1){return <div>我是無圖模式</div>}if(articleTyp === 2){return <div>我是單圖模式</div>}if(articleTyp === 3){return <div>我是三圖模式</div>}
}
function App(){return (<div className='App'>{getArticleTem()}</div>)
}

08集-React事件綁定

on + 事件名稱

const handler = () => {console.log("button被點擊了")}
<button onClick='handler'>按鈕</button>

形參 e
這個e是當前組件
用的最多的是target,e.target

const handler = (e) => {console.log("button被點擊了",e)}
<button onClick='handler'>按鈕</button>

傳遞自定義參數
通過箭頭函數調用

const handler = (e) => {console.log("button被點擊了",e)}
<button onClick='() => {handler('jack')}'>按鈕</button>

同時傳遞 e 和 自定義參數

const handler = (e) => {console.log("button被點擊了",e)}
<button onClick='(e) => {handler('jack')}'>按鈕</button>

09 集 組件

組件有自己的UI和邏輯,可以和其他組件互相嵌套
組件可以復用多次
開頭首字母大寫
下面就是自定義組件

function Button(){return <Button>click me!</Button>
}

使用,兩種使用方式

<Button />
<Button></Button>

10集 useState

react的hook函數.向組件添加一個狀態變量,影響組件的渲染結果
// 第一個是變量,第二個是函數,用來修改count的值,第三個括號里面是count初始值

const [count,setSount] = useState(0)
function App(){useState [count,setCount] = useState(0)// 這里修改了,組件會重新渲染const change = () => {setCount(count+1)}return (<div><button onClick={change}>{count}</button></div>)
}

如果修改了值,則這個組件會重新渲染

11集 useState修改規則

只有通過 setCount,也就是在 useState里面寫的方法,才會重新渲染組件

修改對象–{name:“小明”}

通過方法

const [name,setName] = useState({name:"小李"})
const change = () =>{setName(...name{name:"小6"})
}

12集-基礎樣式控制

行內樣式

不推薦
樣式屬性字段需要駝峰形似書寫
在這里插入圖片描述
在這里插入圖片描述

抽取行內樣式

const style = {//todo}
然后把對象放進去

class類名控制

1. 寫css文件,里面寫樣式1.1 .foo{background: green;}
3. import './index.css'
4. <div className='foo'></div>

13集列表渲染

自己去B站看怎么實現吧,老師準備的課件比較麻煩,需要自己寫
這里需要定義一個方法,然后再函數里面使用map的遍歷方法進行遍歷,然后返回

14集-刪除評論功能實現

給每個數據加上一個 key={item.id} ,然后添加方法 ,遍歷數組,相等就刪除,然后再重新賦值
自己的評論才顯示刪除按鈕,需要多一個判斷,當前用戶userid和評論的userid相等才顯示刪除按鈕

15集-切換tab功能實現

固定套路: 1 點擊哪個tab,記錄該tab的id 2. 然后再遍歷的時候,和每個tab做匹配,如果匹配上,就把需要高亮顯示的tab上寫上對應的樣式

通用思路

記錄當前tab的唯一id
第二步,使用 {},里面在使用 ${} 比較當前評論所屬type是否和點擊的 type一致
核心代碼

核心代碼2
在這里插入圖片描述

16集-評論排序功能實現

思路

js的數組有方法,可以進行排序.點擊調用方法
在方法里面進行排序,然后通過 useState里面的方法進行設置更新

工具類 lodash 可以進行排序,生成新的數據不更改老數據

執行 npm i lodash
引入 import _ from ‘lodash’
使用

_.orderBy(commnetList,'like','desc')
_.orderBy(commentList,'times','desc')

17集classnames類名優化控制工具

classnames 一個簡單的js庫,通過條件動態控制class類名顯示
npm i classnames
<span className={className(‘’,{active: type === item.type})}>
第一個參數是動態的類名,第二個是一個對象,key是要顯示的類名,value是控制條件

17集結語-動態類名還有高階的用法,可以去官網看

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86189.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86189.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86189.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue 路由學習

params 不能傳遞對象類型如 [ ]和{ } query傳參 總結&#xff1a; query傳參既可以通過name 和path 找到路由規則里的組件&#xff0c;所以為了統一避免非必要麻煩 無論是使用query傳參還是 params傳參 映射路由建議統一使用 name 進階 props的使用 備注&#xff1a;資料來自…

JDK安裝全攻略:開啟Java編程大門

目錄 一、安裝前準備1.1 確認系統類型1.2 檢查系統要求1.3 下載 JDK 安裝包 二、Windows 系統下 JDK 安裝步驟2.1 雙擊安裝包2.2 選擇安裝目錄2.3 完成安裝 三、Windows 系統環境變量配置3.1 打開環境變量設置3.2 配置 JAVA_HOME 變量3.3 配置 Path 變量3.4 驗證配置 四、Linux…

《P1253 扶蘇的問題》

題目描述 給定一個長度為 n 的序列 a&#xff0c;要求支持如下三個操作&#xff1a; 給定區間 [l,r]&#xff0c;將區間內每個數都修改為 x。給定區間 [l,r]&#xff0c;將區間內每個數都加上 x。給定區間 [l,r]&#xff0c;求區間內的最大值。 輸入格式 第一行是兩個整數&…

09.【C語言學習筆記】指針(一)

目錄 1. 內存和地址 1.1 內存 1.2 究竟該如何理解編址 2. 指針變量和地址 2.1 取地址操作符&#xff08;&&#xff09; 2.2 指針變量和解引用操作符&#xff08;*&#xff09; 2.2.1 指針變量 2.2.2 如何拆解指針類型 2.2.3 解引用操作符 * 2.3 指針變量的大小…

Java中static關鍵字的作用與使用詳解

static是Java中一個非常重要的關鍵字&#xff0c;它可以用來修飾變量、方法、代碼塊和嵌套類。下面將從多個方面詳細解釋static的作用和使用方法。 一、static變量&#xff08;類變量&#xff09; 作用 static變量屬于類&#xff0c;而不是類的某個實例。所有實例共享同一個s…

HMLDM-UD100A 型工業激光測距儀通過modbusRTU 轉 profinet 網關輕松接入到西門子1200plc

HMLDM-UD100A 型工業激光測距儀通過modbusRTU 轉 profinet 網關輕松接入到西門子1200plc 在現代工業生產與自動化控制領域&#xff0c;精準的測量設備與高效的通信技術至關重要。HMLDM-UD100A 型工業激光測距儀憑借其高精度、穩定性強等優勢&#xff0c;廣泛應用于各類工業場景…

數據結構與算法:圖論——深度優先搜索dfs

深度優先搜索dfs 提到深度優先搜索&#xff08;dfs&#xff09;&#xff0c;就不得不說和廣度優先搜索&#xff08;bfs&#xff09;有什么區別 根據搜索方式的不同&#xff0c;可以將圖的遍歷分為「深度優先搜索」和「廣度優先搜索」。 深度優先搜索&#xff1a;從某一頂點出…

數組題解——?合并區間【LeetCode】

56. 合并區間 排序&#xff1a; 將所有區間按起始位置 start 從小到大排序。這樣&#xff0c;重疊的區間會相鄰排列&#xff0c;方便后續合并。 合并&#xff1a; 初始化一個空列表 merged&#xff0c;用于存儲合并后的區間。遍歷排序后的區間列表&#xff1a; 如果 merged 為…

關于高精度和鏈表的詳細講解(從屬于GESP五級)

本章內容 高精度 鏈表 位數再多&#xff0c;只管穩穩進位&#xff0c;終會把答案寫滿。 一、高精度 1. 什么是高精度 ? 定義 “高精度整數”指不受 C 原生整型 (int / long long) 位寬限制&#xff0c;而用數組模擬任意位數的大整數。 ? 必要性 64 位 long long 僅能…

Python自動化框架選型指南:Selenium/Airflow/Celery該選誰?

在Python自動化領域,Selenium、Airflow和Celery是三個高頻出現的工具,但它們的定位和適用場景截然不同。許多開發者在技術選型時容易混淆它們的邊界,導致項目架構臃腫或功能不匹配。本文將通過對比分析,幫你明確不同場景下的最佳選擇。 一、框架定位與核心功能對比 框架核…

50天50個小項目 (Vue3 + Tailwindcss V4) ? | DrinkWater(喝水記錄組件)

&#x1f4c5; 我們繼續 50 個小項目挑戰&#xff01;—— DrinkWater組件 倉庫地址&#xff1a;https://github.com/SunACong/50-vue-projects 項目預覽地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 Composition API 和 <script setup> 語法結…

UAVAI-YOLO:無人機航拍圖像的小目標檢測模型

摘要 針對無人機航拍圖像目標檢測效果差的問題&#xff0c;提出改進的UAVAI-YOLO模型。首先&#xff0c;為使模型獲得更加豐富的語義信息&#xff0c;使用改進可變形卷積網絡&#xff08;deformable convolutional networks&#xff0c;DCN&#xff09;替換原骨干&#xff08…

Solidity 入門教程(一):Hello Web3,從一個字符串開始!

學習 Solidity 最好的方式&#xff0c;就是寫出你的第一個合約&#xff01;在本篇文章中&#xff0c;我們將用極簡的代碼&#xff0c;通過 Remix 平臺快速實現并運行一個 “Hello Web3!” 合約&#xff0c;正式邁入智能合約開發的大門。 一、什么是 Solidity&#xff1f; Sol…

串擾與包地

串擾與包地&#xff1a; 串擾與包地一直是業界非常關心的一個問題&#xff0c;圍繞著它們的爭論非常多&#xff0c;那到底是包地好 還是不包地好呢?高速先生嘗試著從理論和實際測試上來給大家做一個分析。 為了驗證它&#xff0c;高速先生做了以下幾種情況&#xff0c;如圖5-…

leetcode hot 100之:二叉樹的最近公共祖先

本來不打算寫的哈哈哈但是發現這一道遞歸我是有思路的&#xff01;&#xff01;自己能想到一些方向&#xff01;我真棒&#xff01;所以記錄一下哈哈哈 我的思路&#xff1a; 1、祖先一定是自身或往上找&#xff0c;所以如何逆著走呢&#xff1f; 2、3種情況&#xff1a; 有…

【VUE】某時間某空間占用情況效果展示,vue2+element ui實現。場景:會議室占用、教室占用等。

某時間某空間占用情況效果展示&#xff0c;vue2element ui實現。場景&#xff1a;會議室占用、教室占用等。 場景說明&#xff1a; 現在需要基于vue2和el-table實現每日會議室個時間點占用情況。 已知數據&#xff1a; 1、會議室數據&#xff08;名稱&#xff0c;id&#xff…

Git更換源方式記錄

本文首發地址&#xff1a;https://www.dawnsite.cn/archives/198.html 該方式前提是本地項目已關聯遠程倉庫&#xff0c;由于業務變更git地址改變 1. 移除本地已有遠程倉庫 git remote remove origin2. 添加新的遠程倉庫源 git remote add origin "clone地址"3.一步…

前端面試專欄-主流框架:12. Vue3響應式原理與API

&#x1f525; 歡迎來到前端面試通關指南專欄&#xff01;從js精講到框架到實戰&#xff0c;漸進系統化學習&#xff0c;堅持解鎖新技能&#xff0c;祝你輕松拿下心儀offer。 前端面試通關指南專欄主頁 前端面試專欄規劃詳情 Vue3響應式原理與API詳解 一、引言 Vue3作為Vue.j…

DAY 37 早停策略和模型權重的保存

早停策略 import torch.nn as nn import torch.optim as optim import time import matplotlib.pyplot as plt from tqdm import tqdm# Define the MLP model class MLP(nn.Module):def __init__(self):super(MLP, self).__init__()self.fc1 nn.Linear(X_train.shape[1], 10)s…

零基礎搭建Spring AI本地開發環境指南

Spring AI 是一個 Spring 官方團隊主導的開源項目&#xff0c;旨在將生成式人工智能&#xff08;Generative AI&#xff09;能力無縫集成到 Spring 應用程序中。它提供了一個統一的、Spring 風格的抽象層&#xff0c;簡化了與各種大型語言模型&#xff08;LLMs&#xff09;、嵌…