react的基础

一. React介绍

React是一个由Facebook开源的JavaScript库,用于构建用户界面。React允许开发人员以声明式的方式构建可复用的UI组件,使得对于复杂的Web应用程序,构建和维护用户界面变得更加简单。

React采用组件化的开发模式,将Web页面拆分为多个模块化组件,使得每个组件都可以独立地进行开发、测试和维护。同时,React还采用了虚拟DOM和单项数据流的设计思想,使得React的性能表现更加出色。

二.React的优点

  1. 声明式编程:React可以让开发人员以声明式的方式编写UI组件,从而使得界面代码更加可读、可维护,同时也更加容易组件化。

  1. 组件化开发:React采用组件化的开发模式,将页面拆分为多个小的、独立的组件,可以大大提高开发效率,并使代码更加易于重用和维护。

  1. 虚拟DOM:React使用虚拟DOM来优化页面渲染,可以在最小化DOM操作的同时,有效地减少页面重绘次数,提高性能。

  1. 单项数据流:React采用单项数据流的设计思想,保证数据的传递和修改都是单向的,使得数据的流动更加可控和明确,减少了复杂性。

  1. 社区活跃:React拥有庞大的开发者社区和大量的第三方库和插件,提供了各种各样的解决方案和支持,使得React的可扩展性和可定制性也更加出色。

总之,React是一个功能强大、性能优异、生态丰富的JavaScript库,已经成为了构建现代Web应用程序的首选框架之一。

三.React的项目的创建

npm init vite
项目名称:myreact
选择react选项
选择javascript选项
cd myreact
执行安装:npm i
npm run dev
运行项目

四.jsx语法

 { }  js 表达式
 {/**/}注释
 className  类名
 数组可以有html标签  自动展开
 style对象会自动展开
 有且只有一个根节点

五.各个文件的含义

 App.css  根css
 App.js 根组件
 App.test.js  根测试文件
 index.css  入口css
 index.js   入口js
 .gitinore git  上传忽略文件
 package-lock.json  安装缓存地址
 package.json  包管理
 RREADME.md   项目说明文件

六.state(状态与数据)

1.使用
    state的数据是响应式更新的(数据变化,视图自动更新)
    {this.state.num}

2.更新
    this.setState({num:val})
    this.setState({num:value},()=>{})

七.事件   onClick={函数}

1. 响应函数
    onClick={函数}
    onDoubleClick={()=>{this.say()}}
2. 事件传参
    onClick={this.show.bind(this,'参数')}
    onClick={()=>{this.show('参数')}}

八.表单的双向绑定

<input value= {this.state.msg} onChange={e=>this.setState({msg:e.target.value})} />

九.dom引用

import React,{createRef} from 'react'
this.myref = creatRef()
<input ref = {this.myref}>
//获取dom  引用对象 this.myref.current

十.条件渲染

1.文本
1.1普通字符串 {变量名}
1.2.html字符串
<div dangerouslySetInnerHTML={{__html:richStr}}>
普通字符串 {变量名}
2.条件
2.1三元
{条件?<p>true展示</p>:<p>false展示</p>}
2.2&&
{条件&&<p>条件成立展示</p>}
3.循环
3.1数组会自动展开  {arr}
3.2数组中可以有html节点
3.3通过map映射
{arr.map((item,index)=><p key={index}>{item}</p>)}

十一.列表渲染

{this.state.list.map((item,index)=><h1 key={index}>{item}</h1>)}

1.使用map方法渲染一个数组
首先需要创建一个数组,将数组中的每个元素渲染到列表中,如下:

class List extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      list: ['apple', 'banana', 'orange']
    };
  }
  render() {
    return (
      <ul>
        {this.state.list.map((item, index) => <li key={index}>{item}</li>)}
      </ul>
    );
  }
}
这里通过使用数组的map方法,将数组中的每个元素渲染成一个li元素,
通过设置每个li元素的key属性,可以提高列表渲染的性能

2.通过遍历props中的数据渲染列表
当从父组件中传递一个数组到子组件时,可以通过遍历该数组渲染一个列表,如下:
class List extends React.Component {
  render() {
    return (
      <ul>
        {this.props.list.map((item, index) => <li key={index}>{item}</li>)}
      </ul>
    );
  }
}

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      list: ['apple', 'banana', 'orange']
    };
  }
  render() {
    return (
      <div>
        <List list={this.state.list}/>
      </div>
    );
  }
}
在子组件List中通过this.props.list可以获取到从父组件传递的数组,
然后通过遍历数组,将每个元素渲染成一个li元素。在父组件App中,
将数组作为props传递给子组件List。
这种方法可以让组件的代码更加清晰、易懂。

十二.组件类型

1.函数组件(推荐使用)
函数组件是一种简单的组件类型,它是一个JavaScript函数,
接收props作为参数并返回一个React元素。例如:

function App(props) {
  return <h1>Hello, {props.name}!</h1>;
}
在上面的例子中,我们定义了一个名为App的函数组件,
它接收一个名为props的对象作为参数,并在渲染时返回一个h1元素,
该元素显示了从props中获取的name属性。


2.类组件
类组件是ES6中的JavaScript类,它使用extends关键字继承React.Component类,
并实现一个render方法,该方法返回一个React元素。例如:

class App extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}!</h1>;
  }
}

在上面的例子中,我们定义了一个名为App的类组件,它实现了一个render方法,
并返回一个h1元素,该元素显示了从props中获取的name属性。


总结
React中有两种类型的组件:函数组件和类组件。
函数组件是一种简单的组件类型,它是一个JavaScript函数,
接收props作为参数并返回一个React元素;类组件是ES6中的JavaScript类,
使用extends关键字继承React.Component类,
并实现一个render方法,该方法返回一个React元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值