快上車,react 入門拾遺

来源:https://www.cnblogs.com/mrwh/archive/2019/09/24/11574952.html
-Advertisement-
Play Games

最近朋友圈和微博都刷了一波傑倫的回憶殺–說好不哭,想想都9012了,在學習react如火如荼的路上,也不妨停下腳步來總結總結,朝花夕拾一下。 為了便於闡述,我們還是來段小明和禪師的故事吧。 小明在學習路上遇到了一些問題,於是有了以下對話: <1> npm 對 yarn 小明:經歷了從 npm -> ...


        最近朋友圈和微博都刷了一波傑倫的回憶殺–說好不哭,想想都9012了,在學習react如火如荼的路上,也不妨停下腳步來總結總結,朝花夕拾一下。

  為了便於闡述,我們還是來段小明和禪師的故事吧。 小明在學習路上遇到了一些問題,於是有了以下對話:

            

<1> npm 對 yarn 

  小明:經歷了從 npm -> cnpm -> yarn之後,沒想到NPM5之後推出了一個新工具npx,比如在創建react項目時,使用命令

npx create-react-app my-app

npx會將create-react-app 腳手架下載到一個臨時目錄,使用後再刪除,能有效避免全局安裝模塊,當然它還有其他優秀的功能,我現在到底該選用yarn呢還是回到npm呢?

 npm與yarn的命令對比)

 

禪師 使用過 yarn的人,用了都說好 ,天下武功唯快不破,yarn曾經以它的下載速度快和yarn.lock的版本穩定性碾壓過npm,當然現在npm奮起直追,青出於藍而勝於藍,推出npx(你劈叉你牛叉),你還是要學會使用的,小孩才做選擇,大人選擇都會,新老項目你總得維護吧,目前推薦用yarn來管理版本,npm來跑命令。

 

<2> 聲明式語法

小明:在學習React的時候,有介紹react優勢之一是聲明式語法,聲明式語法是什麼?

禪師:這裡表揚你一下,你有尋根刨底的精神很好,而不是一梭子把代碼敲。為了說明聲明式語法,我們要引入另外一個概念-命令式語法,進行對比。

聲明式編程,在於聲明瞭我要什麼,而不關心具體怎麼做,而命令式編程,則是把過程告訴電腦,如何一步一步去具體怎麼做

就像天龍八部中,王語嫣指導段譽打架,她只需說出招式名,平沙落雁,橫掃秋風,至於怎麼打則由段譽發揮。

 

代碼說明:

Reac組件 聲明式展示地圖

 

 JavaScript 命令式展示地圖

 

 

聲明式編程的好處:更加簡潔、易懂,利於大型項目代碼的維護;

 

<3> Es6語法在React中的應用

小明:在寫展示組件(無狀態組件)和綁定事件的時候經常會用到箭頭函數,這個箭頭指過去指過來的都把我快指暈了,禪師快給我講講箭頭函數吧

禪師:看來你es6語法基礎知識不扎實呀,箭頭函數以簡短和不綁定this著稱,可能是它太簡短了,你看不懂,那我就來還原一下它是如何從繁到簡的。

1) 當我們有兩個或多個參數時:

2)當我們只有一個參數時,括弧都可以省略,(單身時就不要穿防彈衣了,不然丘比特之箭可射不中哦)

3)如果沒有參數,括弧應該是空的(但它們應該存在,天空沒有留下飛鳥的痕跡,只好用括弧證明我來過):

4)如果箭頭右邊返回的是一個對象的話,我們需要用圓括弧將其包起來,保護對象,保護她:

5)總結

箭頭左邊為輸入的參數,箭頭右邊為接收並使用它們的表達式

 

ES6語法在React中的應用還有解構賦值、三點運算符、Async/Await替代Promise,這些就留給小伙伴下來瞭解了。

<4> redux 工作流

小明:最近項目裡面用到redux來管理React組件的數據狀態,作為初學者看了官方的redux工作流程圖還是一臉懵逼,禪師可以解釋一下嗎

 

禪師:小伙子,做過double joy大寶劍嗎

小明:(心裡想,禪師這是要鬧哪樣,我問您問題,您要我請你去做大寶劍?),糾結中...

禪師敲了下小明,“想啥呢,沒做過,屌絲男士里大鵬和喬杉去做足療的段子,總看過吧”

小明:嗯嗯,看過

禪師:那我就以這個舉例了哈,React Components就相當於客官大鵬他們,然後他們去足浴店做“大寶劍”,首先見到的是Action Creators“老闆”,他們說是熟客了,要找小紅。"老闆"就回到了Store,讓Reducer(經理)看看"小紅技師“忙不忙(現在的狀態),如果不忙就讓她過來陪大鵬他們。

 

 

小明:哈哈,明白了,沒想到禪師也懂這些

禪師:嗯嗯,既要出世也要入世嘛,下次是不是該請我去體驗一下

小明...

(補充點菜版)

 

 

如果你覺得有點意思,記得點個推薦哦,快樂加倍,double joy~

 

參考文檔

React設計模式與最佳實踐》

技術胖學redux

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文章屬於個人在學習vue的隨筆,留作與大家分享,技術交流之用,如果有錯誤,請大家多多指正。謝謝 首先說一下vue的使用方式: vue的使用方式一共有兩種,第一種是直接在官網上下載vue.js的文件,之後在HTML頁面裡面直接使用script標簽進行引用即可。另一種方式是使用vue-cil,使用no ...
  • 序 上一篇已經把基本架子搭起來了,現在來增加css、scss、自動生成html、css 提取等方面的打包。webpack 預設只能處理js模塊,所以其他文件類型需要做下轉換,而loader 恰恰是做這個事情的,來試試一步一步的完成這個事情吧。 1、安裝 normalize.css normalize ...
  • 一.示例代碼 註意:如果進行本地測試請在右上角 `本地設置 不校驗合法性打鉤` 二.參數 "微信官方解釋" 參數 | 屬性 | 類型 | 預設值 | 必填 | 說明 | | : | : : | : : | | | | url | string | | 是 | 開發者伺服器介面地址 | | data ...
  • layui獲取全部覆選框checkbox選中的值,layui獲取表單開關switch的值 ...
  • 學習jQuer對錶單、表格操作的過程中,按照書上的例子發現一個問題: 以下代碼同樣使用prop()函數,使用attr()方法也不能實現預期 ...
  • 小程式製作扭蛋機 2019-09-24 13:26:53 公司要製作活動小程式,其中有一個扭蛋機的效果實現抽獎的功能。在網上找了好久竟沒有找到(不知道是不是我找代碼的方式有問題)。最後還是自己做一個吧- _ - ,效果如下: 1.wxml 當然我這裡沒有用wx:for遍歷 2.wxss 這一步比較麻 ...
  • 跨域:顧名思義,跨埠,功能變數名稱,協議都算跨域, 平常中請求後臺,發送http請求,就一般用的就是axios跟jquery,用這個兩個發送請求時,在同域也就是不跨域條件下了瀏覽器會自動帶cookie 那現在webpack他有了proxy設置,就是解決了跨域問題,也就是說如果我本地項目想要請求一個http ...
  • webpack在build包的時候,有時候會遇到打包時間很長的問題,這裡提供了一個解決方案,讓打包如絲般順滑~ 1. 介紹 在用 Webpack 打包的時候,對於一些不經常更新的第三方庫,比如 ,`lodash vue` 我們希望能和自己的代碼分離開,Webpack 社區有兩種方案 CommonsC ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...