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'))