xx
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: chenxuan
|
* @Author: chenxuan
|
||||||
* @Date: 2021-12-23 21:52:33
|
* @Date: 2021-12-23 21:52:33
|
||||||
* @LastEditTime: 2021-12-23 23:44:20
|
* @LastEditTime: 2022-01-01 18:51:47
|
||||||
* @LastEditors: chenxuan
|
* @LastEditors: chenxuan
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
@@ -18,9 +18,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
const text="hello world!";
|
const text="hello world!";
|
||||||
const vdom=(
|
const vdom=(
|
||||||
@@ -16,9 +16,9 @@
|
|||||||
<div id="app">
|
<div id="app">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
function App(){
|
function App(){
|
||||||
return (
|
return (
|
||||||
@@ -13,9 +13,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
const data=['angular','vue','React'];
|
const data=['angular','vue','React'];
|
||||||
const vm=(
|
const vm=(
|
||||||
@@ -13,9 +13,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
class Mycomponent extends React.Component{
|
class Mycomponent extends React.Component{
|
||||||
render(){
|
render(){
|
||||||
@@ -13,9 +13,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
class Weather extends React.Component{
|
class Weather extends React.Component{
|
||||||
constructor(props){
|
constructor(props){
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: chenxuan
|
* @Author: chenxuan
|
||||||
* @Date: 2021-12-31 00:08:42
|
* @Date: 2021-12-31 00:08:42
|
||||||
* @LastEditTime: 2021-12-31 00:11:18
|
* @LastEditTime: 2022-01-01 15:57:12
|
||||||
* @LastEditors: chenxuan
|
* @LastEditors: chenxuan
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
@@ -9,13 +9,13 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>state</title>
|
<title>state简写</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
class Weather extends React.Component{
|
class Weather extends React.Component{
|
||||||
state={ishot:true}
|
state={ishot:true}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-01 14:00:24
|
||||||
|
* @LastEditTime: 2022-01-01 22:27:36
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>props限制和默认值</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
<script src="../package/old/prop-types.js"></script>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Person extends React.Component{
|
||||||
|
render(){
|
||||||
|
const {name,sex,age}=this.props
|
||||||
|
return(
|
||||||
|
<ul>
|
||||||
|
<li>姓名:{name+1}</li>
|
||||||
|
<li>性别:{sex}</li>
|
||||||
|
<li>年龄:{age}</li>
|
||||||
|
</ul>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
Person.propTypes = {
|
||||||
|
name:PropTypes.string.isRequired, //限制name必传,且为字符串
|
||||||
|
sex:PropTypes.string,//限制sex为字符串
|
||||||
|
age:PropTypes.number,//限制age为数值
|
||||||
|
speak:PropTypes.func
|
||||||
|
}
|
||||||
|
Person.defaultProps={
|
||||||
|
name:"xxxx",
|
||||||
|
sex:"xxxx",
|
||||||
|
age:999
|
||||||
|
}
|
||||||
|
function speak(){
|
||||||
|
console.log('我说话了');
|
||||||
|
}
|
||||||
|
ReactDOM.render(<Person name="陈轩" age={18} sex="男" speak={speak}/>,document.getElementById('app'))
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-01 20:04:49
|
||||||
|
* @LastEditTime: 2022-01-01 22:41:50
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>props限制和默认值</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
<script src="../package/old/prop-types.js"></script>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Person extends React.Component{
|
||||||
|
static propTypes = {
|
||||||
|
name:PropTypes.string.isRequired, //限制name必传,且为字符串
|
||||||
|
sex:PropTypes.string,//限制sex为字符串
|
||||||
|
age:PropTypes.number,//限制age为数值
|
||||||
|
speak:PropTypes.func
|
||||||
|
}
|
||||||
|
static defaultProps={
|
||||||
|
name:"xxxx",
|
||||||
|
sex:"xxxx",
|
||||||
|
age:999
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
const {name,sex,age}=this.props
|
||||||
|
return(
|
||||||
|
<ul>
|
||||||
|
<li>姓名:{name+1}</li>
|
||||||
|
<li>性别:{sex}</li>
|
||||||
|
<li>年龄:{age}</li>
|
||||||
|
</ul>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function speak(){
|
||||||
|
console.log('我说话了');
|
||||||
|
}
|
||||||
|
ReactDOM.render(<Person name="陈轩" age={18} sex="男" speak={speak}/>,document.getElementById('app'))
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-02 13:37:37
|
||||||
|
* @LastEditTime: 2022-01-02 15:04:53
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>函数式组件props</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
<script src="../package/old/prop-types.js"></script>
|
||||||
|
<script type="text/babel">
|
||||||
|
function Person(props){
|
||||||
|
const {name,sex,age}=props
|
||||||
|
return(
|
||||||
|
<ul>
|
||||||
|
<li>姓名:{name+1}</li>
|
||||||
|
<li>性别:{sex}</li>
|
||||||
|
<li>年龄:{age}</li>
|
||||||
|
</ul>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Person.propTypes = {
|
||||||
|
name:PropTypes.string.isRequired, //限制name必传,且为字符串
|
||||||
|
sex:PropTypes.string,//限制sex为字符串
|
||||||
|
age:PropTypes.number,//限制age为数值
|
||||||
|
speak:PropTypes.func
|
||||||
|
}
|
||||||
|
Person.defaultProps={
|
||||||
|
name:"xxxx",
|
||||||
|
sex:"xxxx",
|
||||||
|
age:999
|
||||||
|
}
|
||||||
|
function speak(){
|
||||||
|
console.log('我说话了');
|
||||||
|
}
|
||||||
|
ReactDOM.render(<Person name="陈轩" age={18} sex="男" speak={speak}/>,document.getElementById('app'))
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
1、虚拟dom
|
||||||
|
2、jsx语法
|
||||||
|
3、组件与模块
|
||||||
|
4、函数式组件
|
||||||
|
5、类式组件
|
||||||
|
6、state
|
||||||
|
7、props(标签属性)
|
||||||
|
8、函数式组件props
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-02 15:24:10
|
||||||
|
* @LastEditTime: 2022-01-02 19:52:21
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>字符串形式的refs属性</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Demo extends React.Component{
|
||||||
|
haha=()=>{
|
||||||
|
alert(this.refs.haha.value)
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<input type="text" ref="haha"/>
|
||||||
|
<button onClick={this.haha}>点我</button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReactDOM.render(
|
||||||
|
<Demo/>,document.getElementById('app')
|
||||||
|
)
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-02 21:23:11
|
||||||
|
* @LastEditTime: 2022-01-02 22:31:28
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>回调函数形式的refs属性</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Demo extends React.Component{
|
||||||
|
haha=()=>{
|
||||||
|
const {haha}=this;
|
||||||
|
alert(haha.value);
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
{/*这种内联函数,更新会多次调用 时有bug */}
|
||||||
|
<input type="text" ref={c=>this.haha=c}/>
|
||||||
|
<button onClick={this.haha}>点我</button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReactDOM.render(
|
||||||
|
<Demo/>,document.getElementById('app')
|
||||||
|
)
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-02 22:09:19
|
||||||
|
* @LastEditTime: 2022-01-02 22:31:39
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!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>回调函数形式的refs属性</title>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Demo extends React.Component{
|
||||||
|
state={ishot:true}
|
||||||
|
// 这种写法,更新时不会调用
|
||||||
|
haha=(c)=>{
|
||||||
|
this.hehe=c;
|
||||||
|
console.log(c)
|
||||||
|
}
|
||||||
|
change=()=>{
|
||||||
|
const {ishot}=this.state;
|
||||||
|
this.setState({ishot:!ishot});
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
const {ishot}=this.state;
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<li>今天天气很{this.state.ishot ? '热':'凉快'}</li>
|
||||||
|
<input type="text" ref={this.haha}/>
|
||||||
|
<button onClick={this.change}>更新</button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReactDOM.render(
|
||||||
|
<Demo/>,document.getElementById('app')
|
||||||
|
)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-02 23:49:08
|
||||||
|
* @LastEditTime: 2022-01-02 23:51:41
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!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>createRef</title>
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Demo extends React.Component{
|
||||||
|
myef=React.createRef();
|
||||||
|
getValue=()=>{
|
||||||
|
alert(this.myef.current.value)
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<input type="text" ref={this.myef}/>
|
||||||
|
<button onClick={this.getValue}>更新</button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReactDOM.render(
|
||||||
|
<Demo/>,document.getElementById('app')
|
||||||
|
)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
1、字符串形式的ref
|
||||||
|
2、回调函数形式的ref
|
||||||
|
3、ref内联函数bug
|
||||||
|
4、
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2022-01-03 16:58:04
|
||||||
|
* @LastEditTime: 2022-01-03 18:46:40
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
|
<!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">
|
||||||
|
<script src="../package/old/react.development.js"></script>
|
||||||
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
|
<script src="../package/old/babel.min.js"></script>
|
||||||
|
<script src="../package/old/prop-types.js"></script>
|
||||||
|
<title>事件</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="text/babel">
|
||||||
|
class Demo extends React.Component{
|
||||||
|
getValue=(e)=>{
|
||||||
|
alert(e.target.value)
|
||||||
|
}
|
||||||
|
render(){
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<input type="text" onBlur={this.getValue}/>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReactDOM.render(
|
||||||
|
<Demo/>,document.getElementById('app')
|
||||||
|
)
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
1、事件
|
||||||
@@ -1,3 +1,9 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: chenxuan
|
||||||
|
* @Date: 2021-12-23 21:52:33
|
||||||
|
* @LastEditTime: 2022-01-01 18:52:07
|
||||||
|
* @LastEditors: chenxuan
|
||||||
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
@@ -7,9 +13,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./package/old/react.development.js"></script>
|
<script src="../package/old/react.development.js"></script>
|
||||||
<script src="./package/old/react-dom.development.js"></script>
|
<script src="../package/old/react-dom.development.js"></script>
|
||||||
<script src="./package/old/babel.min.js"></script>
|
<script src="../package/old/babel.min.js"></script>
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+19194
-14269
File diff suppressed because it is too large
Load Diff
+2566
-2166
File diff suppressed because it is too large
Load Diff
+14146
-19071
File diff suppressed because it is too large
Load Diff
+2132
-2532
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user