react學習筆記(一)

js複習

1.js中沒有方法重載
2.創建對象

var obj = new Object();
var obj = {};

3.錯誤處理

try{
}catch{
}

4.js事件

什麼是句柄。

句柄(handle),有多種意義,第一種解釋:句柄是一種特殊的智能指針 。當一個應用程序要引用其他系統(如數據庫、操作系統)所管理的內存塊或對象時,就要使用句柄。 [1] 第二種解釋:整個Windows編程的基礎
一個句柄是指使用的一個唯一的整數值,即一個4字節(64位程序中爲8字節)長的數值,來標識應用程序中的不同對象和同類中的不同的實例,諸如,一個窗口,按鈕,圖標,滾動條,輸出設備,控件或者文件等。應用程序能夠通過句柄訪問相應的對象的信息,但是句柄不是指針,程序不能利用句柄來直接閱讀文件中的信息。如果句柄不在I/O文件中,它是毫無用處的。 句柄是Windows用來標誌應用程序中建立的或是適用的對象的唯一整數,Windows大量使用了句柄來標識對象。

響應方式

1.在標籤事件屬性中編碼
結構與行爲耦合
無法編寫大量的js代碼
2.動態綁定事件
找到元素->爲元素相應地事件屬性賦值一個方法->當事件發生以後,瀏覽器就會自動調用

jquery複習

使用$()方法傳入function相當於window.οnlοad=function(){}

jquery的核心函數$:

$=jQuery
1.傳入參數爲函數時,
$(function(){})
文檔加載完成後執行,相當於window.onload(?)
2.傳入參數爲html字符串
根據字符串創建元素節點對象
3.傳入參數爲選擇器字符串時,
根據選擇器查找出元素節點對象
4.傳入參數爲dom對象時,
將dom對象包裝爲jquery對象返回

jquery任何找到的元素都被包裝成爲數組,裏面是dom對象

dom樹

瀏覽器提供的
元素節點:html標籤
屬性節點:元素的屬性
文本節點:html標籤中的文本內容

節點的三個屬性:
nodeName nodeType(返回整數) nodeValue

虛擬dom

開發輪子的程序員提供的,模擬dom樹,實現頁面的高效更新
使用js對象來模擬dom tree

diff算法

Diff算法的作用是用來計算出 Virtual DOM 中被改變的部分,然後針對該部分進行原生DOM操作,而不用重新渲染整個頁面。
Diff算法有三大策略:

Tree Diff
Component Diff
Element Diff

webpack打包

配置

配置:

module.exports={
    mode:'debelopment',//development production
}
//向外暴露一個打包的配置對象;因爲webpack是基於node構建的
//webpack 4.x中,約定大於配置,默認的打包路徑就是src/index.js
//目的是爲了減少配置文件的體積
//webpack cnpm i webpack webpack-cli -D安裝即可
//webpack實時編譯:cnpm  i cnpm-dev-sercer -D

注意:
webpack-dev-server打包好的main.js在內存中,並沒有放在磁盤上

html-webpack-plugin

在內存中生成首頁,並自動把打包好的js注入

const path = require('path')
const HtmlWebPackPlugin = require('html-webpack-plugin')
//創建一個插件的實例對象
const htmlPlugin=new HtmlWebPackPlugin({
    template:path.join(__dirname,'./src/index.html'),//源文件,
    filename:'index.html'//生成的內存中首頁的名稱
})

module.exports={
    mode:'debelopment',//development production
    plugins:[
        htmlPlugin
    ]
}
//向外暴露一個打包的配置對象;因爲webpack是基於node構建的
//webpack 4.x中,約定大於配置,默認的打包路徑就是src/index.js
//目的是爲了減少配置文件的體積
//webpack cnpm i webpack webpack-cli -D安裝即可
//webpack實時編譯:cnpm  i cnpm-dev-sercer -D

在項目中使用react

cnpm install react react-dom -S
·react:專門創建組件和虛擬dom

//導入兩個包,並且接收的成員名稱,必須這麼寫

import React from 'react'
import ReactDOM from 'react-dom'

//創建虛擬DOM元素
//參數1:創建的元素類型,字符串,表示元素的名稱
//參數2:是一個對象或null,表示當前這個dom元素的屬性
//參數3:子節點(包括其它虛擬DOM 獲取文本子節點)
//參數n:其它子節點
//<h1 id="muh1" title="this is h1">這是一個h1</h1>
const myh1 = React.creatElement('h1',{id:'myh1',title:"this is a h1"},'這是一個h1')

const mydiv = React.creatElement('div',null,"這是一個div元素",myh1)

//渲染頁面上的dom結構最好的方式就是寫html


//使用reactdom把虛擬DOM渲染到頁面上
//參數1:要渲染的虛擬dom元素
//參數2:指定頁面上一個容器
ReactDOM.render(myh1,document.getElementById('app'))
發佈了136 篇原創文章 · 獲贊 14 · 訪問量 5806
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章