This commit is contained in:
2022-01-04 07:43:38 +08:00
parent 2fe98659ed
commit aa694376fe
23 changed files with 51951 additions and 51575 deletions
+45
View File
@@ -0,0 +1,45 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-23 21:52:33
* @LastEditTime: 2022-01-01 18:51:47
* @LastEditors: chenxuan
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>JSX语法</title>
<style type="text/css">
.haha{
color: red;
}
</style>
</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">
const text="hello world!";
const vdom=(
<div className="haha">
<li style={{fontSize:'48px',fontWeight:'bold'}}>{text}</li>
</div>
);
ReactDOM.render(
vdom,document.getElementById('app')
)
console.log(vdom);
console.log(document.getElementById('app'))
/*
*1、根元素
*2、闭合标签
*3、js使用{}
*4、内联样式使用{{}}
*5、className
*/
</script>
</body>
</html>
+33
View File
@@ -0,0 +1,33 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-21 00:15:12
* @LastEditTime: 2021-12-25 23:15:21
* @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>函数式组件</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">
function App(){
return (
<h1>hello world!</h1>
)
}
ReactDOM.render(
<App/>,document.getElementById('app')
)
</script>
</body>
</html>
+35
View File
@@ -0,0 +1,35 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-23 23:27:50
* @LastEditTime: 2021-12-23 23:43:56
* @LastEditors: chenxuan
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>循环</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">
const data=['angular','vue','React'];
const vm=(
<div>
{
data.map(function(item,index){
return <li key={index}>{item}</li>
})
}
</div>
)
ReactDOM.render(
vm,document.getElementById('app')
)
</script>
</body>
</html>
+22
View File
@@ -0,0 +1,22 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-23 23:46:31
* @LastEditTime: 2021-12-23 23:50:51
* @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>概念</title>
</head>
<body>
<h1>模块化</h1>
<h3>1、一般一个js文件就是一个模块</h3>
<hr>
<h1>组件</h1>
<h3>2、实现局部功能效果的代码和资源的合集</h3>
</body>
</html>
+34
View File
@@ -0,0 +1,34 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-25 23:09:19
* @LastEditTime: 2021-12-26 15:37:28
* @LastEditors: chenxuan
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>类式组件</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 Mycomponent extends React.Component{
render(){
return (
<div>
<h1>我是类式组件</h1>
</div>
)
}
}
ReactDOM.render(
<Mycomponent/>,document.getElementById('app')
)
</script>
</body>
</html>
+44
View File
@@ -0,0 +1,44 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-26 16:30:03
* @LastEditTime: 2021-12-30 22:12:26
* @LastEditors: chenxuan
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>state</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 Weather extends React.Component{
constructor(props){
super(props)
this.state={
ishot:true
}
}
render(){
const {ishot}=this.state;
// 解决this指向问题
return <h1 onClick={this.demo.bind(this)}>今天天气很{ishot ? '炎热' : '凉爽'}</h1>
}
demo(){
this.setState({
ishot:!this.state.ishot
})
}
}
ReactDOM.render(
<Weather/>,document.getElementById('app')
)
</script>
</body>
</html>
+38
View File
@@ -0,0 +1,38 @@
<!--
* @Author: chenxuan
* @Date: 2021-12-31 00:08:42
* @LastEditTime: 2022-01-01 15:57:12
* @LastEditors: chenxuan
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>state简写</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 Weather extends React.Component{
state={ishot:true}
render(){
const {ishot}=this.state;
return <h1 onClick={this.demo}>今天天气很{ishot ? '炎热' : '凉爽'}</h1>
}
demo=()=>{
this.setState({
ishot:!this.state.ishot
})
}
}
ReactDOM.render(
<Weather/>,document.getElementById('app')
)
</script>
</body>
</html>
+51
View File
@@ -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>
+51
View File
@@ -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>
+48
View File
@@ -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>
+8
View File
@@ -0,0 +1,8 @@
1、虚拟dom
2、jsx语法
3、组件与模块
4、函数式组件
5、类式组件
6、state
7、props(标签属性)
8、函数式组件props