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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章