当前位置: 首页 > wzjs >正文

俄文网站建设方案网站开发的实例教程

俄文网站建设方案,网站开发的实例教程,莱芜在线论坛莱芜话题西关规划图,微信开放平台怎么跳过新版本 React 推荐使用函数式组件设计,状态相关处理推荐使用 Hooks,接下来我们通过 class component 和 function component 进行对比讲解。 React 的基础语法和概念是构建 React 应用程序的核心。以下是对 React 基础语法的详细说明,包括 p…

新版本 React 推荐使用函数式组件设计,状态相关处理推荐使用 Hooks,接下来我们通过 class component 和 function component 进行对比讲解。

React 的基础语法和概念是构建 React 应用程序的核心。以下是对 React 基础语法的详细说明,包括 props、state、条件渲染、事件处理和组件传值等。

1. Class Component

1.1. Props

props 是组件的属性,是从父组件传递到子组件的数据。props 是只读的,子组件只能读取而不能修改它们。

import React from 'react';
import ReactDOM from 'react-dom';function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}function App() {return (<div><Welcome name="Sara" /><Welcome name="Cahal" /><Welcome name="Edite" /></div>);
}ReactDOM.render(<App />, document.getElementById('root'));

1.2. State

state 是组件内部的数据状态。state 是可变的,可以通过调用 this.setState 方法来更新状态,从而触发重新渲染。

import React from 'react';
import ReactDOM from 'react-dom';class Clock extends React.Component {constructor(props) {super(props);this.state = { date: new Date() };}componentDidMount() {this.timerID = setInterval(() => this.tick(),1000);}componentWillUnmount() {clearInterval(this.timerID);}tick() {this.setState({date: new Date()});}render() {return (<div><h1>Hello, world!</h1><h2>It is {this.state.date.toLocaleTimeString()}.</h2></div>);}
}ReactDOM.render(<Clock />, document.getElementById('root'));

1.3. 条件渲染

根据某个条件来决定渲染哪个组件或内容。可以使用 JavaScript 中的条件运算符,如 if、else 或三元运算符。

function UserGreeting(props) {return <h1>Welcome back!</h1>;
}function GuestGreeting(props) {return <h1>Please sign up.</h1>;
}function Greeting(props) {const isLoggedIn = props.isLoggedIn;if (isLoggedIn) {return <UserGreeting />;}return <GuestGreeting />;
}ReactDOM.render(<Greeting isLoggedIn={false} />,document.getElementById('root')
);

1.4. 事件处理

React 的事件处理类似于 DOM 事件处理,但有一些语法上的不同。事件命名采用小驼峰命名法,处理函数通过 {} 传递。

class Toggle extends React.Component {constructor(props) {super(props);this.state = { isToggleOn: true };// 绑定事件处理函数this.handleClick = this.handleClick.bind(this);}handleClick() {this.setState(state => ({ isToggleOn: !state.isToggleOn })); }render() {return (<button onClick={this.handleClick}> {this.state.isToggleOn ? 'ON' : 'OFF'}</button>); }
}ReactDOM.render(<Toggle />,document.getElementById('root')
);

1.5. 组件传值

父组件可以通过 props 向子组件传递数据和函数,子组件可以调用父组件传递的函数来传递数据回父组件。

class Parent extends React.Component {constructor(props) {super(props);this.state = { message: '' };this.handleChildData = this.handleChildData.bind(this);}handleChildData(data) {this.setState({ message: data });}render() {return (<div><Child onChildData={this.handleChildData} /><p>Message from child: {this.state.message}</p></div>);}
}class Child extends React.Component {sendData = () => {this.props.onChildData('Hello from child');}render() {return (<div><button onClick={this.sendData}>Send Data to Parent</button></div>);}
}ReactDOM.render(<Parent />,document.getElementById('root')
);

1.6. 列表和 Key

在 React 中渲染列表时,需要为每个列表项提供一个唯一的 key 属性,以便 React 能够有效地更新和重新渲染列表。

function NumberList(props) {const numbers = props.numbers;const listItems = numbers.map((number) =><li key={number.toString()}>{number}</li>);return (<ul>{listItems}</ul>);
}const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(<NumberList numbers={numbers} />,document.getElementById('root')
);

1.7. 表单处理

React 表单元素的值通常由组件的 state 控制,这些表单元素称为“受控组件”。

class NameForm extends React.Component {constructor(props) {super(props);this.state = { value: '' };this.handleChange = this.handleChange.bind(this);this.handleSubmit = this.handleSubmit.bind(this);}handleChange(event) {this.setState({ value: event.target.value });}handleSubmit(event) {alert('A name was submitted: ' + this.state.value);event.preventDefault();}render() {return (<form onSubmit={this.handleSubmit}> <label> Name: <input type="text" value={this.state.value} onChange={this.handleChange}/></label> <input type="submit" value="Submit"/></form>);}
}ReactDOM.render(<NameForm />,document.getElementById('root')
);

2. Class Component

目前 React 应用主流编码方式是函数式组件,后续我们的课程也均是以函数式组件为主,同学们重点学习。

2.1. Props

函数式组件通过参数来接收 props。

import React from 'react';
import ReactDOM from 'react-dom';function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}function App() {return (<div><Welcome name="Sara" /><Welcome name="Cahal" /><Welcome name="Edite" /></div>);
}ReactDOM.render(<App />, document.getElementById('root'));

2.2. State

函数式组件使用 useState Hook 来管理状态。

import React, { useState, useEffect } from 'react';
import ReactDOM from 'react-dom';function Clock() {const [date, setDate] = useState(new Date());useEffect(() => {const timerID = setInterval(() => tick(), 1000);return () => clearInterval(timerID);}, []);const tick = () => {setDate(new Date());};return (<div><h1>Hello, world!</h1><h2>It is {date.toLocaleTimeString()}</h2></div>);
}ReactDOM.render(<Clock />, document.getElementById('root'));

2.3. 条件渲染

使用条件运算符或逻辑运算符来实现条件渲染。

import React from 'react';
import ReactDOM from 'react-dom';function Greeting(props) {const isLoggedIn = props.isLoggedIn;return (<div>{isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign up.</h1>}</div>);
}ReactDOM.render(<Greeting isLoggedIn={false} />,document.getElementById('root')
);

2.4. 事件处理

函数式组件通过内联函数或自定义函数来处理事件。

import React, { useState } from 'react';
import ReactDOM from 'react-dom';function Toggle() {const [isToggleOn, setIsToggleOn] = useState(true);const handleClick = () => {setIsToggleOn(!isToggleOn);};return (<button onClick={handleClick}> {isToggleOn ? 'ON' : 'OFF'}</button>);
}ReactDOM.render(<Toggle />, document.getElementById('root'));

2.5. 组件传值

父组件可以通过 props 向子组件传递数据和函数。

import React, { useState } from 'react';
import ReactDOM from 'react-dom';function Parent() {const [message, setMessage] = useState('');const handleChildData = (data) => {setMessage(data);};return (<div><Child onChildData={handleChildData}/><p>Message from child: {message}</p></div>);
}function Child(props) {const sendData = () => {props.onChildData('Hello from Child');};return (<div><button onClick={sendData}>Send Data to Parent</button></div>);
}ReactDOM.render(<Parent />, document.getElementById('root'));

2.6. 列表和 Key

渲染列表时,需要为每个列表项提供一个唯一的 key 属性。

import React from 'react';
import ReactDOM from 'react-dom';function NumberList(props) {const numbers = props.numbers;const listItems = numbers.map((number) => <li key={number.toString()}>{number}</li>);return (<ul>{listItems}</ul>);
}const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(<NumberList numbers={numbers} />,document.getElementById('root')
);

2.7. 表单处理

函数式组件使用 useState Hook 来处理表单数据。

import React, { useState } from 'react';
import ReactDOM from 'react-dom';function NameForm() {const [value, setValue] = useState('');const handleChange = (event) => {setValue(event.target.value);};const handleSubmit = (event) => {alert('A name was submitted: ' + value);event.preventDefault();};return (<form onSubmit={handleSubmit}><label>Name:<input type="text" value={value} onChange={handleChange}/></label><input type="submit" value="Submit" /></form>);
}ReactDOM.render(<NameForm />, document.getElementById('root'));

文章转载自:

http://MmaJRFgF.sgfpn.cn
http://bUxbSFAM.sgfpn.cn
http://Kx5cwbLu.sgfpn.cn
http://n9zvqzhH.sgfpn.cn
http://hIYlcPx9.sgfpn.cn
http://vKMPq1cV.sgfpn.cn
http://cwMF8BvY.sgfpn.cn
http://N4GgdjAp.sgfpn.cn
http://AMiyD37u.sgfpn.cn
http://RdVqMgS2.sgfpn.cn
http://avnn8rSU.sgfpn.cn
http://ioW53tod.sgfpn.cn
http://zGbeK1uk.sgfpn.cn
http://HhWAuDEr.sgfpn.cn
http://R1zYr5qr.sgfpn.cn
http://UaZ6pEgv.sgfpn.cn
http://Lwigy74L.sgfpn.cn
http://Ec7NW3QM.sgfpn.cn
http://1UqOPicW.sgfpn.cn
http://EE6pfsCR.sgfpn.cn
http://FoG9fbCg.sgfpn.cn
http://lf3et36I.sgfpn.cn
http://m34UccUm.sgfpn.cn
http://IaJFDHbM.sgfpn.cn
http://zHg4V3TI.sgfpn.cn
http://6cv5hpfe.sgfpn.cn
http://PWE3Yi4P.sgfpn.cn
http://zTKPYOvK.sgfpn.cn
http://WlD17O9X.sgfpn.cn
http://t7obDodB.sgfpn.cn
http://www.dtcms.com/wzjs/646091.html

相关文章:

  • 提供深圳网站制作公司网络编程培训
  • 网站设置了自动登录怎么显示密码电商就业前景
  • 邓州网站建设网站首页logo怎么修改
  • 如何做网站卖衣服下载jsp网站开发用啥工具
  • 商城网站哪个公司做的好处微商怎么做推广
  • 网站开发软件技术专业好吗域名是什么 有什么用
  • 顺企网江西网站建设网站建设项目申报书
  • 铺面怎样做放上网站nas wordpress外网访问
  • 做美食网站的意义晋江论坛兔区是什么
  • 南宁网站制作网络公司wordpress好用的空间
  • 阳光保险网站世界500强企业最新排名表
  • 非凡软件站企业网站html5
  • 怎么做买东西的网站深圳还有网站
  • 广东网站开发wordpress悬浮播放器
  • 广东品牌网站建设公司网站程序定制开发流程
  • 教育培训网站建设方案模板模板做图 网站有哪些内容
  • 新乡市封丘县建设局网站网站开发用哪个软件
  • 怎么自己购买域名 建设网站小程序定制开发中软
  • 网站的成功案例一元购物网站建设
  • 做淘宝团购的网站网站展示型和营销型有什么区别
  • 网站开发定位wordpress指针美化
  • 宁波seo整站优化网线水晶头制作过程
  • 网站建设后台管理实训报告扁平化网站psd
  • 实力网站建设电话产品推销文案
  • 网站加强队伍建设做h5那个网站好
  • 网站申请名称和域名wordpress 自建图床
  • 网站赞赏广告制作公司开票范围
  • 做美容仪器的网站如何建立一个网站并运行类似于小红书的
  • 陶瓷马赛克 网站建设 中企动力最经典最常用的网站推广方式
  • 公司网站是否做地方分站wordpress 4.9.4 中文