React開發依賴分析

1. React小案例:

  • 在界面顯示一個文本:Hello World
  • 點擊按鈕后,文本改為為:Hello React

2. React開發依賴

  • 2.1. 開發React必須依賴三個庫:
    • 2.1.1. react: 包含react所必須的核心代碼
    • 2.1.2. react-dom: `react渲染在不同平臺所需要的核心代碼
    • 2.1.3. babel: 將jsx轉換成React代碼的工具
  • 2.2. 第一次接觸React會被它繁瑣的依賴搞蒙, 居然依賴這么多東西
    • 2.2.1. 對于Vue來說,我們只是依賴一個vue.js文件即可, 但是react居然要依賴三個包。
    • 2.2.2. 其實呢, 這三個庫是各司其職的, 目的就是讓每一個庫只單純做自己的事情;
    • 2.2.3. 在React的0.14版本之前是沒有react-dom這個概念的, 所有功能都包含在react里;
  • 2.3. 為什么要進行拆分呢?原因就是react-native
    - 2.3.1. react包中包含了react web和react-native所共同擁有的核心代碼
    - 2.3.2. react-dom針對webnative所完成的事情不同:
    • 2.3.2.1. web端react-dom會將jsx最終渲染成真實的DOM,顯示在瀏覽器中
    • 2.3.2.2. native端react-dom會將jsx最終渲染成原生的控件(比如Android中的ButtoniOS中的UIButton)。

3. Babel和React的關系

  • 3.1. 表格關系如下:
    ES6+ babel工具
    React JSX語法 ----------> 普通的Javascript ----------> 直接運行在瀏覽器

  • 3.2. Babel是什么呢?

    • Babel, 又名 Babel.js
    • 是目前前端使用非常廣泛的編譯器、轉移器
    • 比如當下很多瀏覽器并不支持ES6的語法,但是確實ES6的語法非常的簡潔和方便,開發時希望使用它
    • 那么編寫源碼時就可以使用ES6來編寫,之后通過Babel工具,將ES6轉成大多數瀏覽器都支持的ES5的語法
    • 3.3. React和Babel的關系:
      • 默認情況下開發React其實可以不使用babel
      • 但是前提是自己使用React.createElement來編寫源代碼, 它編寫的代碼非常的繁瑣和可讀性差。
      • 那么就可以直接編寫jsx (JavaScript XML) 的語法,并且讓 babel幫助我們轉換成React.createElement
      • 后續還會詳細講到;
      • 3.4. 項目打包時是不會打包babel的代碼的。

4. 編寫第一個React程序

  • 4.1. 添加依賴
    • 4.1.1. CDN引入
        <!-- CDN引入 --><!-- crossorigin: 目的是為了拿到跨域腳本的錯誤信息 --><script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script><script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script><!-- babel --><script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
      
    • 4.1.2. 下載引入
    • 4.1.3. npm下載引入(腳手架)
  • 4.2. 編寫React代碼(jsx語法)
     // 必須添加type="text/babel", 作用是可以讓babel解析jsx語法<script type="text/babel">// 2. 編寫React代碼(jsx語法)// jsx語法(瀏覽器不識別) -> (轉變成)普通的Javascript代碼 -> 使用babel(轉變成js代碼)// 渲染Hello World// React18之前: ReactDOM.render()// ReactDOM.render(<h2>hello World</h2>, document.querySelector('#root'))// React18之后:const root = ReactDOM.createRoot(document.querySelector('#root'))root.render(<h2>hello World</h2>)const app = ReactDOM.createRoot(document.querySelector('#app'))app.render(<h2>你好啊 李銀河</h2>)</script>
    
  • 4.3. 完整代碼如下:
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
    </head>
    <body><!-- 1.添加react依賴1.1. 三個依賴包:- react: 包含react所必須的核心代碼- react-dom: react渲染在不同平臺所需要的核心代碼- babel: 將jsx轉換成React代碼的工具1.2. 引入的方式:- CDN引入- 下載引入- npm下載引入(腳手架)--><div id="root"></div><div id="app"></div><!-- CDN引入 --><!-- crossorigin: 目的是為了拿到跨域腳本的錯誤信息 --><script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script><script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script><!-- babel --><script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script><!-- 必須添加type="text/babel", 作用是可以讓babel解析jsx語法 --><script type="text/babel">// 2. 編寫React代碼(jsx語法)// jsx語法(瀏覽器不識別) -> (轉變成)普通的Javascript代碼 -> 使用babel(轉變成js代碼)// 渲染Hello World// React18之前: ReactDOM.render()// ReactDOM.render(<h2>hello World</h2>, document.querySelector('#root'))// React18之后:const root = ReactDOM.createRoot(document.querySelector('#root'))root.render(<h2>hello World</h2>)const app = ReactDOM.createRoot(document.querySelector('#app'))app.render(<h2>你好啊 李銀河</h2>)</script></body>
    </html>
    

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

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

相關文章

工具(一)Cursor

目錄 一、介紹 二、如何打開文件 1、從idea跳轉文件 2、單獨打開項目 三、常見使用 1、Chat 窗口 Ask 對話模式 1.1、使用技巧 1.2 發送和使用 codebase 發送區別 1.3、問題快速修復 2、Chat 窗口 Agent 對話模式 2.1、agent模式功能 2.2、Chat 窗口回滾&撤銷 2.3…

Prompt編寫規范指引

1、&#x1f4d6; 引言 隨著人工智能生成內容&#xff08;AIGC&#xff09;技術的快速發展&#xff0c;越來越多的開發者開始利用AIGC工具來輔助代碼編寫。然而&#xff0c;如何編寫有效的提示詞&#xff08;Prompt&#xff09;以引導AIGC生成高質量的代碼&#xff0c;成為了許…

自我學習----繪制Mark點

在PCB的Layout過程中我們需在光板上放置Mark點以方便生產時的光學定位&#xff08;三點定位&#xff09;&#xff1b;我個人Mark點繪制步驟如下&#xff1a; layer層&#xff1a;1.放置直徑1mm的焊盤&#xff08;無網絡連接&#xff09; 2.放置一個圓直徑2mm&#xff0c;圓心與…

2025年財稅行業拓客破局:小藍本財稅版AI拓客系統助力高效拓客

2025年&#xff0c;在"金稅四期"全面實施的背景下&#xff0c;中國財稅服務市場迎來爆發式增長&#xff0c;根據最新的市場研究報告&#xff0c;2025年中國財稅服務行業產值將達2725.7億元。然而&#xff0c;行業高速發展的背后&#xff0c;80%的財稅公司卻陷入獲客成…

雙向鏈表,對其實現頭插入,尾插入以及遍歷倒序輸出

1.創建一個節點&#xff0c;并將鏈表的首節點返回創建一個獨立節點&#xff0c;沒有和原鏈表產生任何關系#include "head.h"typedef struct Node { int num; struct Node*pNext; struct Node*pPer; }NODE;后續代碼&#xff1a;NODE*createNode(int value) {NODE*new …

2025年自動化工程與計算機網絡國際會議(ICAECN 2025)

2025年自動化工程與計算機網絡國際會議&#xff08;ICAECN 2025&#xff09; 2025 International Conference on Automation Engineering and Computer Networks一、大會信息會議簡稱&#xff1a;ICAECN 2025 大會地點&#xff1a;中國柳州 審稿通知&#xff1a;投稿后2-3日內通…

12.Origin2021如何繪制誤差帶圖?

12.Origin2021如何繪制誤差帶圖?選中Y3列→點擊統計→選擇描述統計→選擇行統計→選擇打開對話框輸入范圍選擇B列到D列點擊輸出量→勾選均值和標準差Control選擇下面三列點擊繪圖→選擇基礎2D圖→選擇誤差帶圖雙擊圖像→選擇符號和顏色點擊第二個Sheet1→點擊誤差棒→連接選擇…

如何使用API接口獲取淘寶店鋪訂單信息

要獲取淘寶店鋪的訂單信息&#xff0c;您需要通過淘寶開放平臺(Taobao Open Platform, TOP)提供的API接口來實現。以下是詳細步驟&#xff1a;1. 注冊淘寶開放平臺賬號訪問淘寶開放平臺注冊開發者賬號并完成實名認證創建應用獲取App Key和App Secret2. 申請API權限在"我的…

【Kiro Code 從入門到精通】重要的功能

一、Kiro 是什么&#xff1f; Kiro 是一款智能型集成開發環境&#xff08;IDE&#xff09;&#xff0c;借助規格說明&#xff08;specs&#xff09;、向導&#xff08;steer&#xff09;、鉤子&#xff08;hooks&#xff09;幫助你高效完成工作。 二、Specs 規格說明 規范&…

直播間里的酒旅新故事:內容正在重構消費鏈路

文/李樂編輯/子夜今年暑期&#xff0c;旅游的熱浪席卷全國。機場、火車站人潮涌動&#xff0c;電子屏上滾動的航班信息與檢票口前的長隊交織成繁忙的出行圖景&#xff0c;酒店預訂量也在這股熱潮中節節攀升。連線 Insight關注到&#xff0c;今年的暑期游有了一些新變化&#xf…

50天50個小項目 (Vue3 + Tailwindcss V4) ? | VerifyAccountUi(驗證碼組件)

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

AbstractAuthenticationToken 認證流程中??認證令牌的核心抽象類詳解

AbstractAuthenticationToken 認證流程中??認證令牌的核心抽象類詳解在 Spring Security 中&#xff0c;AbstractAuthenticationToken 是 Authentication 接口的??抽象實現類??&#xff0c;其核心作用是為具體的認證令牌&#xff08;如用戶名密碼令牌、JWT 令牌等&#x…

小程序視頻播放,與父視圖一致等樣式設置

初始設置的代碼&#xff1a;WXML的代碼<view class"card-wrapper"> <!-- 視頻播放容器&#xff08;默認隱藏&#xff09; --> <view class"video-container" wx:if"{{isPlaying}}"> <video id"cardVideo" class&…

Kafka——關于主題管理

引言在Kafka的世界中&#xff0c;主題&#xff08;Topic&#xff09;是消息的基本組織單位&#xff0c;類似于文件系統中的"文件夾"——所有消息都按照主題分類存儲&#xff0c;生產者向主題寫入消息&#xff0c;消費者從主題讀取消息。主題的管理是Kafka運維的基礎&…

【VLLM】VLLM使用

一 、安裝 二、啟動入口 VLLM 提供了多種入口方式啟動模型&#xff0c;以適應不同的使用場景&#xff08;如命令行交互、API 服務、自定義集成等&#xff09;。除了最常用的 openai.api_server&#xff08;OpenAI 兼容 API 服務&#xff09;&#xff0c;還有以下主要入口&#…

為Github Copilot創建自定義指令/說明/注意事項

GitHub Copilot 是一個強大的 AI 編程助手&#xff0c;通過合理配置自定義指令&#xff0c;可以讓它更好地理解和遵循項目特定的編碼規范&#xff0c;省的每次提問時輸入重復提示語。 目錄 方法一&#xff1a;項目級別指令文件&#xff08;推薦&#xff09;方法二&#xff1a…

信創厚知聯盟會長兼創始人蒞臨綠算技術

2025年7月29日&#xff0c;信創厚知聯盟會長兼創始人王杲一行考察廣東省綠算技術有限公司&#xff0c;重點調研其在智算中心存儲與AI算力協同領域的創新成果。此次交流標志著雙方在信創產業生態合作上邁出重要一步&#xff0c;為國產高端高性能全閃存存儲與智算基礎設施的融合發…

RAG面試內容整理-Prompt Engineering 在 RAG 中的作用

Prompt Engineering(提示工程)指為生成模型精心設計輸入提示,以引導模型產生所需的輸出。在RAG系統中,prompt設計對充分利用檢索到的知識至關重要。因為生成器(通常是LLM)接收到的不僅有用戶問題,還有檢索的文檔內容,我們需要通過提示明確告訴模型如何使用這些信息。例…

【計算機網絡】5傳輸層

傳輸層是面向通信的最高層&#xff0c;也是用戶功能的最底層。 傳輸層僅存在于主機中&#xff0c;路由器等中間設備只用到下三層&#xff08;無傳輸層&#xff09;。傳輸層對上層應用隱藏了底層網絡的復雜細節&#xff08;比如數據怎么路由、網絡怎么連接等&#xff09;。對應用…

SecureCRT連接密鑰交換失敗

SecureCRT連接密鑰交換失敗問題描述&#xff1a;問題分析&#xff1a;解決方案&#xff1a;問題描述&#xff1a; SecureCRT6.7連接銀河麒麟操作系統v10版本&#xff0c;報錯如下&#xff1a; key exchange failed 密鑰交換失敗 no compatible key exchange method. The serv…