React 复习
01-类的基本知识
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>01-函数式组件</title>
</head>
<body>
<script type="text/JavaScript">
class person {
constructor(name, age) {
this.name = name;
this.age = age;
}
speak() {
console.log("我叫", this.name, "我年龄是", this.age);
}
}
const p1 = new person("小张", 100);
const p2 = new person("小红", 101);
console.log(p1);
console.log(p2);
console.log(p1.speak());
class student extends person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
speak() {
console.log(
"我叫",
this.name,
"我年龄是",
this.age,
"我上年纪",
this.age
);
}
study() {
}
}
const s1 = new student("小白", 10, "六年级");
const s2 = new student("小黑", 11, "五年级");
s1.speak();
console.log(s1);
console.log(s2);
</script>
</body>
</html>
02-原生事件绑定
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<button id="btn1">按钮1</button>
<button id="btn2">按钮2</button>
<button id="btn3" onclick="demo3()">按钮3</button>
<script>
const btn1 = document.getElementById("btn1");
const btn2 = document.getElementById("btn2");
const btn3 = document.getElementById("btn3");
btn1.addEventListener("click", () => {
alert("点击了按钮1");
});
btn2.onclick = () => {
alert("点击了按钮2");
};
function demo3(params) {
alert("点击了按钮3");
}
</script>
</body>
</html>
03-类中方法 this 的指向
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script type="text/javascript">
class person {
constructor(name, age) {
this.name = name;
this.age = age;
}
speak() {
console.log(this);
}
}
const p1 = new person("tom", 18);
const x = p1.speak;
x();
p1.speak();
</script>
</body>
</html>
04-展开运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
let arr1 = [1, 3];
let arr2 = [2, 4];
console.log(...arr1);
let arr3 = [...arr1, ...arr2];
console.log(arr3);
function sum(...numbers) {
console.log(numbers);
let sum = numbers.reduce((pre, cur) => {
return pre + cur;
}, 0);
return sum;
}
console.log(sum(1, 2, 3, 4, 5));
let person = { name: "123", value: "456" };
let person2 = { ...person };
console.log(person2);
let person3 = { ...person, address: "999" };
console.log(person3);
</script>
</body>
</html>
05-高阶函数和函数柯里化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>01-函数式组件</title>
</head>
<body>
<div id="test"></div>
<div id="test1"></div>
<script src="../React-js/react.development.js"></script>
<script src="../React-js/react-dom.development.js"></script>
<script src="../React-js/babel.min.js"></script>
<script type="text/babel">
class MyComponent extends React.Component {
state = {
username: "",
password: "",
};
handleSubmit = (event) => {
event.preventDefault();
const { username, password } = this.state;
console.log(username, password);
};
saveFormData = (dataType) => {
return (event) => {
this.setState({ [dataType]: event.target.value });
};
};
render() {
return (
<form onSubmit={this.handleSubmit}>
用户名:{" "}
<input
onChange={this.saveFormData("username")}
type="text"
name="username"
/>
密码: <input
onChange={this.saveFormData("password")}
type="password"
password="password"
/>
<button>登录</button>
</form>
);
}
}
ReactDOM.render(<MyComponent />, document.getElementById("test1"));
</script>
</body>
</html>
06-对象相关的知识
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
let a = "name";
let obj = {};
obj[a] = a;
</script>
</body>
</html>
07-演示函数柯里化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
function sum(a) {
return (b) => {
return (c) => {
return a + b + c;
};
};
}
const result = sum(1)(2)(3);
console.log(result);
</script>
</body>
</html>