国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端框架學(xué)習(xí)-React(一)

這篇具有很好參考價值的文章主要介紹了前端框架學(xué)習(xí)-React(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

React 應(yīng)用程序是由組件組成的。

  • react 程序是用的jsx語法,使用這種語法的代碼需要由babel進行解析,解析成js代碼。

    jsx語法:

    1. 只能返回一個根元素

    2. 所有的標(biāo)簽都必須閉合(自閉和或使用一對標(biāo)簽的方式閉合)

    3. 使用駝峰式命名法給大部分屬性命名如:className

    4. 大寫字母開頭的標(biāo)簽一般都是組件

    5. jsx標(biāo)簽的屬性,使用引號傳遞字符串,使用一組{}傳遞js變量,且大括號中可以寫js的表達式,也可以傳遞使用個另外一對額外的大括號包裹對象。

    6. 標(biāo)簽中可以使用三目運算符

      在 JSX 中,{cond ? <A /> : <B />} 表示 “當(dāng) cond 為真值時, 渲染 <A />,否則 <B />

      在 JSX 中,{cond && <A />} 表示 “當(dāng) cond 為真值時, 渲染 <A />,否則不進行渲染”。

      return (
        <li className="item">
          {isPacked ? name + ' ?' : name}
        </li>
      );
      
    7. 渲染列表:使用map()方法生成一組相似組件,使用filter()方法來篩選數(shù)組

      const listItems = chemists.map(person =>
        <li>...</li> // 隱式地返回!
      );
         
      const listItems = chemists.map(person => { // 花括號
        return <li>...</li>;
      });
      
  • 組件引入語法用到了ES6的模塊化編程語法

    1. 解構(gòu)賦值語法:可以將數(shù)組中的值或?qū)ο蟮膶傩匀〕?,賦值給其他變量。

    2. 展開運算符:

      function Profile({ person, size, isSepia, thickBorder }) {
        return (
          <div className="card">
            <Avatar
              person={person}
              size={size}
              isSepia={isSepia}
              thickBorder={thickBorder}
            />
          </div>
        );
      }
      {/* 關(guān)于Avatar那一部分可以寫成 */}
      <Avatar {...props} />
      
  • React 三大元素:

    • State對象(要將state視為只讀的)

      在數(shù)據(jù)發(fā)生改變之后頁面上的內(nèi)容才會重新渲染、

      • 設(shè)置 state 不會更改現(xiàn)有渲染中的變量,會請求一次新的渲染。
      • React 將 state 存儲在組件之外,就像在架子上一樣。
      • 當(dāng)你調(diào)用 useState 時,React 會為你提供該次渲染 的一張 state 快照。

      更新state對象時要傳遞一個新的值,即使時一個json對象。

      • 你可以使用這樣的 {...obj, something: 'newValue'} 對象展開語法來創(chuàng)建對象的拷貝。

      更新state中的數(shù)組:

      推薦使用(會返回一個新數(shù)組)
      添加元素 concat,[…arr]
      刪除元素 filter,slice
      替換元素 map
      排序 先將數(shù)組復(fù)制一份兒

      可以使用 Immer 來保持代碼簡潔。

      相同UI樹上的元素的State將會被保留,位置不同的組件會使state重置

      • 你可以通過為一個子樹指定一個不同的 key 來重置它的 state。
    • props對象

      在標(biāo)簽上添加屬性,即可給組件添加prop屬性。在子組件中可以通過props讀取到對應(yīng)的屬性,解構(gòu)賦值時可以給一個默認(rèn)值

      function Avatar({ person, size = 100 }) {
        // ...
      }
      

      組件間共享狀態(tài):可以通過狀態(tài)提升的方式,讓后再通過props傳遞給子組件。

      通過context上下文傳遞參數(shù)

      1. 創(chuàng)建context

        import { createContext } from 'react';
        export const LevelContext = createContext(1);
        
      2. 使用context

        {/* 組件會使用 UI 樹中在它上層最近的那個 <LevelContext.Provider> 傳遞過來的值。 */}
        import { LevelContext } from './LevelContext.js';
        const level = useContext(LevelContext);
        
      3. 提供context

        {/* 在父組件中設(shè)定對應(yīng)的值 */}
        <section className="section">
            <LevelContext.Provider value={level}>
          		{children}
            </LevelContext.Provider>
        </section>
        
    • ref對象

  • React的交互:

    • 給元素的事件傳遞一個函數(shù),而調(diào)用一個函數(shù)。

      <button onClick={handleClick}> {/* 正確 */}
      <button onClick={handleClick()}>{/* 錯誤 */}
      
  • 在 React 中,useState 以及任何其他以“use”開頭的函數(shù)都被稱為 Hook

    • 使用useImmerReducer可以將通知同一個state的方法,組織到一起。提高代碼的可讀性。文章來源地址http://www.zghlxwxcb.cn/news/detail-662108.html

      • useState轉(zhuǎn)化為useReducer
        1. 通過事件處理函數(shù) dispatch actions;
        2. 編寫一個 reducer 函數(shù),它接受傳入的 state 和一個 action,并返回一個新的 state;
        3. 使用 useReducer 替換 useState;
      import { useImmerReducer } from 'use-immer';
      import AddTask from './AddTask.js';
      import TaskList from './TaskList.js';
      
      function tasksReducer(draft, action) {
        switch (action.type) {
          case 'changed': {
            const index = draft.findIndex((t) => t.id === action.task.id);
            draft[index] = action.task;
            break;
          }
          case 'deleted': {
            return draft.filter((t) => t.id !== action.id);
          }
          default: {
            throw Error('未知 action:' + action.type);
          }
        }
      }
      
      export default function TaskApp() {
        const [tasks, dispatch] = useImmerReducer(tasksReducer, initialTasks);
        function handleChangeTask(task) {
          dispatch({
            type: 'changed',
            task: task,
          });
        }
        function handleDeleteTask(taskId) {
          dispatch({
            type: 'deleted',
            id: taskId,
          });
        }
        return (
          <>
            <h1>布拉格的行程安排</h1>
            <AddTask onAddTask={handleAddTask} />
            <TaskList
              tasks={tasks}
              onChangeTask={handleChangeTask}
              onDeleteTask={handleDeleteTask}
            />
          </>
        );
      }
      let nextId = 3;
      const initialTasks = [
        {id: 0, text: '參觀卡夫卡博物館', done: true},
        {id: 1, text: '看木偶戲', done: false},
        {id: 2, text: '打卡列儂墻', done: false},
      ];
      
      

到了這里,關(guān)于前端框架學(xué)習(xí)-React(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue 和 React 前端框架的比較

    Vue 和 React 前端框架的比較

    本文研究了流行的前端框架 Vue 和 React 之間的區(qū)別。通過對它們的學(xué)習(xí)曲線、視圖層處理方式、組件化開發(fā)、響應(yīng)式數(shù)據(jù)處理方式和生態(tài)系統(tǒng)及社區(qū)支持進行比較分析,得出了它們在不同方面的優(yōu)劣和特點。該研究對于開發(fā)者在選擇合適的前端框架時提供參考。 Vue 是一款由

    2024年02月13日
    瀏覽(24)
  • React與Vue:前端框架的比較

    在前端開發(fā)領(lǐng)域,React和Vue是兩個備受矚目的框架。它們都提供了構(gòu)建用戶界面的強大工具,但它們在實現(xiàn)方式、性能和設(shè)計理念上存在一些關(guān)鍵差異。本文將深入探討這兩個框架之間的主要區(qū)別。 首先,讓我們從數(shù)據(jù)流的角度來看。在Vue中,數(shù)據(jù)流是雙向的,這意味著組件

    2024年01月20日
    瀏覽(16)
  • 前端(七)——React框架的定位與應(yīng)用場景解析

    前端(七)——React框架的定位與應(yīng)用場景解析

    ??博主:小貓娃來啦 ??文章核心: React框架的定位與應(yīng)用場景解析 什么是react? React 是一個由 Facebook 開發(fā)的開源 JavaScript庫,用于構(gòu)建用戶界面。 于2013年首次發(fā)布,并迅速成為前端開發(fā)中最受歡迎的框架之一。 在 React 誕生之前,前端開發(fā)面臨著許多挑戰(zhàn),包括復(fù)雜的D

    2024年02月17日
    瀏覽(16)
  • JavaScript 框架比較:Angular、React、Vue.js

    在 Web 開發(fā)領(lǐng)域,JavaScript 提供大量技術(shù)??晒┻x擇。其中最典型的三套組合,分別是 MERN、MEAN 和 MEVN。這些首字母相同的選項各自代表不同的技術(shù)加工具組合。為了在這些技術(shù)棧中做出明智選擇,讓我們先從核心組件聊起,再對各自前端框架(React、Angular 和 Vue)進行簡化比

    2024年01月20日
    瀏覽(36)
  • 前端開發(fā)框架生命周期詳解:Vue、React和Angular

    作為前端開發(fā)者,掌握前端開發(fā)框架的生命周期是非常重要的。在現(xiàn)代Web應(yīng)用開發(fā)中,Vue.js、React和Angular是三個最流行的前端開發(fā)框架。本篇博客將詳細(xì)解讀這三個框架的生命周期,包括每個階段的含義、用途以及如何最大限度地利用它們。通過詳細(xì)的代碼示例和實用的技巧

    2024年02月13日
    瀏覽(27)
  • React與Vue性能對比:兩大前端框架的性能

    React和Vue是當(dāng)今最流行的兩個前端框架,它們在性能方面都有著出色的表現(xiàn)。 React的加載速度: 初次加載:由于React使用了虛擬DOM(Virtual DOM)技術(shù),它可以通過比較虛擬DOM樹與實際DOM樹的差異來進行高效的重繪。這使得React在初次加載時相對較快,因為它只會更新需要修改的

    2024年02月03日
    瀏覽(29)
  • React.js前端 + Spring Boot后端員工管理

    該項目是一個員工管理系統(tǒng),前端使用 React.js 構(gòu)建,后端使用 Spring Boot 和 Data JPA 和 Lombok 構(gòu)建。它提供了有效管理員工信息的全面解決方案。 特征 響應(yīng)式設(shè)計:響應(yīng)式 UI 設(shè)計,確保跨各種設(shè)備的可用性。 數(shù)據(jù)驗證:驗證用戶輸入以確保數(shù)據(jù)完整性。 使用的技術(shù) 前端:R

    2024年04月28日
    瀏覽(24)
  • 前端(十一)——Vue vs. React:兩大前端框架的深度對比與分析

    前端(十一)——Vue vs. React:兩大前端框架的深度對比與分析

    ??博主:小貓娃來啦 ??文章核心: Vue vs. React:兩大前端框架的深度對比與分析 在當(dāng)今快速發(fā)展的前端領(lǐng)域中,Vue和React作為兩個備受矚目的前端框架,已經(jīng)成為許多開發(fā)者的首選。這兩個框架憑借其出色的設(shè)計和強大的功能,在構(gòu)建現(xiàn)代化、高效性能的Web應(yīng)用方面扮演著

    2024年02月14日
    瀏覽(19)
  • 前端框架之戰(zhàn):React vs Vue vs Angular

    前端框架在現(xiàn)代網(wǎng)頁開發(fā)中扮演著越來越重要的角色,它們?yōu)殚_發(fā)者提供了一種更高效、可擴展的方式來構(gòu)建復(fù)雜的用戶界面。在過去的幾年里,我們看到了許多前端框架和庫的出現(xiàn),如React、Vue和Angular等。這三個框架分別由Facebook、Google和AngularJS團隊開發(fā),它們都是目前最

    2024年02月03日
    瀏覽(27)
  • Vue VS React:兩大前端框架的對比與分析

    Vue和React是當(dāng)前最流行的前端框架之一,它們都有著廣泛的應(yīng)用和開發(fā)者社區(qū)。下面是Vue和React之間的深度對比與分析: 學(xué)習(xí)曲線: Vue:Vue擁有簡單直觀的API和文檔,對初學(xué)者友好。Vue的設(shè)計初衷是逐步增強的,可以從小規(guī)模項目逐漸擴展到大規(guī)模應(yīng)用。 React:React的學(xué)習(xí)曲

    2024年02月14日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包