React學習筆記(持續更新)

2.2頁面加載過程

1.資源加載過程:URL->DNS查詢->資源請求->瀏覽器解析

①URL結構:http://www.hhh.com:80/getdata?pid=1#title[協議://域名:端口/路徑?參數#哈希]

②DNS查詢:瀏覽器<--(ip)(域名)-->DNS緩存+DNS服務器? ?(dns-prefetch緩存)

③資源請求:瀏覽器<--(status+response-header+body)(request-header+參數(url、body))-->后端服務器

④瀏覽器解析:DOM--JS執行-->DOM-->渲染樹-->布局-->繪制

2.3ES6常用語法

1.let變量,const常量(不能重復定義,塊級作用域,不變量提升)

2.箭頭函數:參數=> 表達式/語句、繼承外層作用域、不能用作構造函數、沒有prototype屬性

3.反引號標識``、支持多行字符串、支持變量和表達式

4.Promise:Promise對象、關鍵詞:resolve、reject、then

?5.面向對象-類:關鍵詞:class、語法糖:function、構造函數:constructor

? 面向對象-類的繼承:extends:類的繼承,super:調用父類構造函數,

面向對象-對象:對象里屬性簡寫,對象方法簡寫,屬性可以為表達式,其它擴展

2.5本地存儲

1.cookie:①用戶端保存請求信息的機制。②分號分隔的多個key-value字段。③存儲在本地的加密文件里。④域名和路徑限制。

? ?字段:name:cookie名稱,domain:cookie生效的域名,path:cookie生效的路徑,expires:cookie過期時間,HttpOnly:用戶端不可更改

2.session:①服務端保存請求信息的機制。②sessionId通常存放在cookie里。③會話由瀏覽器控制,會話結束,session結束。

3.localStorage:①H5新特性。②有域名限制,不存在作用域概念。③只有key-value。④沒有過期時間。⑤瀏覽器關閉后不消失。

4.sessionStorage:①和localStorage相似。②瀏覽器關閉消失。

?

3-2前端框架要解決的問題

1.傳統的原生開發方式的不足:代碼層面、效率問題、多頁應用問題

2.框架開發的不足:兼容性問題,SEO不友好、有場景要求,開發自由度降低、黑盒開發,框架本身有出錯風險、有學習成本。

3.三大框架對比:angular:09年發布,Google;主要版本:1.x,2.x,4.x,5.x(beta);基于html的大而全的MVC框架;

? ?react:13開源,Facebook;最新版本:16.x;基于js的視圖層框架;

? ?vue:14開源,尤雨溪,阿里weex團隊;主要版本:0.1x,1.x,2.x;基于html的視圖層框架;

框架對比:angular ? ? ? ? ? ?react ? ? ? ? ? ? ? ? ? ? vue

組織方式:MVC ? ? ? ? ? ? ? ?模塊化 ? ? ? ? ? ? ? ? ?模塊化

數據綁定:雙向 ? ? ? ? ? ? ? ? 單向 ? ? ? ? ? ? ? ? ? ? ?雙向

模板能力:強大 ? ? ? ? ? ? ? ? 自由 ? ? ? ? ? ? ? ? ? ? ?簡潔

自由度 : ?較小 ? ? ? ? ? ? ? ? 大 ? ? ? ? ? ? ? ? ? ? ? ? ? 較大

路由: ?靜態路由 ? ? ? ? ? ? ?動態路由 ? ? ? ? ? ? ? ?動態路由

app方案:Ionic ? ? ? ? ? ? ? ? RN ? ? ? ? ? ? ? ? ? ? ? ? Weex

適用場景:后端開發構建CURD ? ? ? ? ? ? 前端開發構建復雜web ? ? ? ? ? ? ? ? ? 前端開發快速構建web

?

4.2git項目建立及配置:https://www.cnblogs.com/GuliGugaLiz/p/9484525.html

?

4.4webpack配置

1.需要處理的文件類型

html-->html-webpack-plugin

腳本-->babel+babel-preset-react

樣式-->css-loader+sass-loader

圖片/字體-->url-loader+file-loader

2.webpack常用模塊

html-webpack-plugin,html單獨打包成文件

extract-text-webpack-plugin,樣式打包成單獨文件

CommonsChunkPlugin,提出通用模塊

3.webpack-dev-server

為webpack項目提供web服務;使用不便2.9.7;更改代碼自動刷新,路徑轉發;yarn add webpack-dev-server@2.9.7 --dev;解決多版本共存問題

?

5.2初識react

1.視圖層框架(只關注顯示,不關注數據層)、組件化(不是繼承模式)、JSX表達式(在html中加入了邏輯處理)、虛擬DOM(減少低效操作提高性能)

視圖層框架:①一個構建用戶界面的框架②聲明式的框架③數據驅動DOM,再用事件反饋給數據

組件化開發:①組件組合而不是繼承②state&&props③生命周期

JSX:①一直js擴展的表達式②帶有邏輯的html

虛擬DOM:①對DOM進行模擬②比較操作前后的數據差異③如果數據差異,統一操作dOM

2優點:簡潔、靈活、高效

3.缺點:思維轉換、依賴生態、變動頻繁

?

5.5React的生命周期

1.加載過程:constructor-->componentWillMount-->componentDidMount

2.更新過程:shouldComponentUpdate-->componentWillUpdate-->componentDidUpdate;如果是props更新組件執行componentWillReceiveProps來接受父組件傳過來的props

3.組件銷毀:componentWillUnmount

?

5.6Router原理及React-Router

1.Router原理:歷史-->跳轉-->事件

2.常見Router:頁面Router(window.location.href='http://www.baidu.com')-->Hash Router(1.(window.location.href='#test1';2.window.οnhashchange=function(){console.log(''current hash:),window.location.hash})-->H5 Router(1.history.pushState('test','Title','/index/test');2.history.replaceState('test','Title','/index/test) =>跳轉到localhost:8080/index/test)

3.React-Router:<BrowserRouter>/<HashRouter>,路由方式;<Route>,路由規則;<Swithch>,路由選項;<Link/><NavLink>,跳轉導航;<Redirect>,自動跳轉

?

5.7React數據管理

1.依靠狀態提升來和兄弟元素進行數據交互;通過發布訂閱模式做數據交互;Redux等數據管理工具

?

轉載于:https://www.cnblogs.com/GuliGugaLiz/p/9436413.html

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

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

相關文章

2年工作經驗進 初創公司_溝通是關鍵:通過兩家初創公司獲得的成長經驗教訓+找工作...

2年工作經驗進 初創公司by Niki Agrawal通過尼基阿格勞瓦爾(Niki Agrawal) 溝通是關鍵&#xff1a;通過兩家初創公司獲得的成長經驗教訓找工作 (Communication is key: growth lessons learned through two startups a job hunt) It’s been a crazy two years. I founded tw…

Hibernate問題淺析

1、什么是SessionFactory&#xff1f;什么是Session&#xff1f;httpsession和hibernate的session的有什么區別&#xff1f;SessionFactory接口負責初始化Hibernate。它充當數據存儲源的代理&#xff0c;并負責創建Session對象。這里用到了工廠模式。需要注意的是SessionFactor…

Oracle中SQL語句學習五(統計分組語句group by和having)

oracle&#xff08;41&#xff09; 在 應用系統開發中&#xff0c;進行需要統計數據庫中的數據&#xff0c;當執行數據統計時&#xff0c;需要將表中的數據進行分組顯示&#xff0c;在統計分組中是通過group by子句、分組函數、having子句共同實現的。其中group by子句用于指定…

linux系統去吧,要開始另一個linux操作系統的嘗試了,說說我以前的ubuntu吧

我想&#xff0c;除了嘗試一下ubuntu的神奇魅力的同時&#xff0c;我應該去體驗一下RedHat的神奇吧&#xff01;馬上就要告別ubuntu了&#xff0c;我想把我的部分使用經歷和大家分享分享&#xff01;首先&#xff0c;無論是ubuntu8.04、10.04還是10.1的效果都是很好的&#xff…

課程編碼查詢_付出還是不付出:生活中最好的事情(例如編碼課程)是否免費?...

課程編碼查詢by Rick West由里克韋斯特(Rick West) 付出還是不付出&#xff1a;生活中最好的事情(例如編碼課程)是否免費&#xff1f; (To pay or not to pay: are the best things in life — like coding courses — free?) Recently, I’ve been working on a project tha…

做開發十年,我總結出了這些開發經驗

本文由云社區發表,原文轉載地址:https://www.cnblogs.com/qcloud1001/p/10218876.html 在一線做了十年的開發&#xff0c;經歷了網易、百度、騰訊研究院、MIG 等幾個地方&#xff0c;陸續做過 3D 游戲、2D 頁游、瀏覽器、移動端翻譯 app 等。 積累了一些感悟。必然有依然幼稚的…

2016年4月 TIOBE 編程語言排行榜

4月頭條: Visual Basic 正在漸行漸遠 COBOL, BASIC 和 FORTRAN 很長一段時間作為主力開發語言被使用。有很多軟件使用這些語言來編寫&#xff0c;并且發展的不亦樂乎。然而經過多年的發展&#xff0c;COBOL和FORTRAN逐漸被拋棄&#xff0c;而得益于微軟的存在&#xff0c;BASIC…

linux系統不知道電腦密碼怎么辦,Linux如何修復系統的Root密碼 -電腦資料

如果因為忘了root口令導致無法登錄系統&#xff0c;請試用下面的方法來改忘記的root口令&#xff1a;方法一&#xff1a;1、重新啟動系統&#xff0c;2、把光標定位在該選項上按下字母“e”鍵進入這個引導的編輯狀態&#xff1b;3、該選項有三行語句&#xff0c;請用光標選中第…

控制語句(4)

第4章 控制語句if<條件1>&#xff1a; <語句1>elif<條件2>: <語句2>elif<條件3>&#xff1a; <語句3>......else: <語句n>說明&#xff1a;elif語句&#xff0c;只要有一個條件成立&#xff0c;就會將其后的一個部分語句執行…

02 socketserver客戶端

import socket client socket.socket() client.connect((127.0.0.1,8001))while 1:msg input(客戶端說>>>)client.send(msg.encode(utf-8))from_server_msg client.recv(1024)print(from_server_msg.decode(utf-8)) 轉載于:https://www.cnblogs.com/work14/p/10235…

基于zbus的MySQL透明代理(100行)

項目地址 https://git.oschina.net/rushmore/zbus 我們上次講到zbus網絡通訊的核心API&#xff1a; Dispatcher -- 負責-NIO網絡事件Selector引擎的管理&#xff0c;對Selector引擎負載均衡 IoAdaptor -- 網絡事件的處理&#xff0c;服務器與客戶端共用&#xff0c;負責讀寫&am…

linux添加jetdirect協議,Padavan 路由器固件 不能驅動 hp1005、hp1020之類打印機 foo2zjs ZjStream協議的linux打印機驅動程序...

單擊鏈接&#xff0c;或剪切并粘貼下面的整個命令行以下載驅動程序。現在解壓縮它&#xff1a;Unpack:$ tar zxf foo2zjs.tar.gz$ cd foo2zjs現在編譯并安裝它。 INSTALL文件包含更詳細的說明; 請現在閱讀。Compile:$ makeGet extra files from the web, such as .ICM profiles…

返回指定月份的周列表 包含 周序號、開始日期、結束日期(不包含周末)

/*** 返回當前年月的周列表 包含 周序號、開始日期、結束日期(不包含周末)* param year 年* param month 月* returns {Array} */function getYearMonthWeekList(year,month) {var weekList[];var time year "/" month "/01";//取當前月的第…

tez-site.xml_數字支付系統的未來-Google Tez和音頻快速響應

tez-site.xmlby Vaidic Joshi通過Vaidic Joshi 數字支付系統的未來-Google Tez和音頻快速響應 (The future of digital payment systems — Google Tez and Audio Quick Response) Google recently marked its entry into the Indian digital payments market by introducing …

Window上安裝kafka

kafka在windows上的安裝、運行 - 進階者ryan-su - CSDN博客https://blog.csdn.net/u010283894/article/details/77106159 在Windows環境中安裝并使用kafka - 心靈空谷幽蘭 - 博客園https://www.cnblogs.com/xinlingyoulan/p/6054361.html?utm_sourceitdadao&utm_mediumref…

數集合有多少個TOJ(2469)

題目鏈接&#xff1a;http://acm.tju.edu.cn/toj/showp2469.html 感覺這個題目有點問題&#xff0c;算了不管他了&#xff0c;反正A了。 這里要注意的是求這個集合有多少種&#xff0c;那么就是要剔除重復數后&#xff0c;再數一下有多少個。 難一點的算法我也不會&#xff0c;…

linux path環境變量起什么作用,shell基礎(5)PATH環境變量的作用和使用方法

釋放雙眼&#xff0c;帶上耳機&#xff0c;聽聽看~&#xff01;關于PATH的作用PATH說簡單點就是一個字符串變量&#xff0c;當輸入命令的時候LINUX會去查找PATH里面記錄的路徑。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls這個命令根本不在這個兩個目錄下…

天氣城市編碼對應地區編碼_如何在您的城市中建立強大的編碼社區-我是如何做到的...

天氣城市編碼對應地區編碼by Billy Le比利勒(Billy Le) 如何在您的城市中建立強大的編碼社區-我是如何做到的 (How you can build a strong coding community in your city — and how I did it) Communities are important. They are the bedrock that glues together shared…

python3 自動打包部署war包

2019獨角獸企業重金招聘Python工程師標準>>> 1 調用maven 命令打包 mvn -B -f D:/workspace/ksdcourse clean package 2 調用tomcat 部署war包 &#xff1b; 需要添加 CATALINA_HOME的環境變量 代碼如下&#xff1a; #!/usr/bin/python3# -*- coding: utf-8 -*-impo…

python 虛擬環境創建

創建虛擬環境&#xff1a;  sudo apt-get install virtualenv 新建虛擬環境文件夾 venv virtualenv venv 進入虛擬環境 source venv/bin/activate 安裝套件列表模塊: 用來記錄項目中所使用到的各種模塊&#xff0c;便于項目部署時統一安裝所需模塊 pip freeze > requir…