react

React是一个用于构建用户界面的javaScript库。

安装react步骤:

步骤一:打开黑窗口

步骤二:全局安装react

步骤三:创建项目 myreact是自己起的项目名,可以是要起的名字

步骤四:cd myreact (切换到自己的项目)

步骤五:npm start (打开项目)

jsx(javascript混合xml(html)语法格式)

目的:更好的在javascript中写html模板

特点:
1. 只有一个根节点
2. {} 写javascript
3. 数组可以直接写html标签
4. 对象样式自动展开
5. {/* */}注释
6. 类名用className

 条件渲染方法:

方法一、与运算符&&

条件&&元素

true&&中午鱼香肉丝 前面为true显示中午鱼香肉丝

false&&不显示  前面为false不显示(如下面条件渲染案例

总结:

条件为真 &&右侧显示 条件为假 &&右侧不显示

方法二、三目运算符 

 条件?元素1:元素2

条件为真返回元素1,条件为假返回元素2  (如下面的案例条件渲染

文本渲染:

普通文本渲染 {}

html文本渲染

dangerouslySetInnerHTML={{ __html: xxx }}

列表渲染:

用map()方法遍历

数组.map((item)=><h4 key={item}>{item}</h4>)

key是标识跟vue中的key的理念一样

事件 :

与普通js事件一样只是命名采用小驼峰式(下面有案例说明怎么使用)

更新状态(State):

this.setState({k:v})

this.setState({k:v},()=>console.log("执行完毕的回调函数"))  (案例如下)

import React, { Component } from 'react'

export default class App extends Component {
    constructor(props) {
        super(props)
        this.state = {
            msg: "<strong>放假</strong>回家很开心",
            isLog: false,
            list: ['vue', 'react', 'jquery', 'js']
        }
    }
    sayHi = (msg = "握手") => {
        alert(msg)
    }
    render() {
        return (
            <div>
                {/* 更新数据 */}
                <button onClick={()=>{this.setState({isLog:!this.state.isLog},()=>{
                    console.log("切换数据完成")
                })}}>切换</button>  
                {/* 事件 */}
                <button onClick={this.sayHi.bind(this, '哈哈哈')}>愿望-传参2</button>
                <button onClick={() => { this.sayHi('哈哈哈') }}>愿望-传参</button>
                <button onClick={this.sayHi}>愿望</button>
                <button onClick={() => alert('2022即将来临')}>点击</button>
                {/* 列表渲染 */}
                {this.state.list.map(item => <h4 key={item}>{item}</h4>)}
                {/* 文本渲染 */}
                {this.state.msg}
                <div dangerouslySetInnerHTML={{ __html: this.state.msg }}></div>
                {/* 条件渲染 */}
                {this.state.isLog ? <p>欢迎回来</p> : <p>请登录</p>}
                {this.state.isLog && <p>中午鱼香肉丝</p>}
            </div>
        )
    }
}

显示结果

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值