ReactNatIve 自习系列----------------------------------------《一》

本文详细介绍了React的基本概念,包括组件和props的使用,条件渲染的方法,列表组件的创建,以及表单的处理。通过实例展示了如何在React中进行状态管理和交互式编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RN 学习之前需要有些js基础,ES6,React需要先学习。

 

简单做下学习ES6,React的笔记:

 

组件和props:

class ClassTest extends React.Component{
    constructor(props){
        super(props);
    }
    render(){
        let {name,age} = this.props;
        return (
            <div>
                Name is :{name},Age is {age}
            </div>
        );
    }
}

使用:          <ClassTest name="hahahahaha" age="18" />

props 是只读的不能修改,所以这个东西只是用来展示的。

如果想要修改怎么办的,那就使用state。

 

 

 

20181008:

React 条件渲染的几种方式:

 

  1. 元素变量 即用 if  判断

2. 与运算符      && 

{readMessage.length > 0 && (<h2>You have {readMessage.length} 条信息未读</h2>)}

3.三目运算符

4.阻止渲染  返回 null  就可以了

 

 

列表组件:

  直接上例子:

      

class ListTest extends React.Component{
    constructor(props) {
        super(props);
        this.numbers = this.props.numbers.map((number)=><li>{number}</li>);
        this.state = {
            name: '',
            age: null,
            sex: ['男', '女'],
        };
    }

    render(){
        return (
            <div>
                <ul >{this.numbers}</ul>
            </div>
        );
    }
}

但是上面的代码在运行时会出现一个错误:

于是我们修改成这个:

class ListTest extends React.Component{
    constructor(props) {
        super(props);
        this.numbers = this.props.numbers.map((number)=><li key={number}>{number}</li>);
        this.state = {
            name: '',
            age: null,
            sex: ['男', '女'],
        };
    }

    render(){
        return (
            <div>
                <ul >{this.numbers}</ul>
            </div>
        );
    }
}

这样就可以了,木有问题了

 

表单:

直接撸码:


class NameForm extends  React.Component{
    constructor(props){
        super(props);
        this.state = {
            value:'Please write an essay about your favorite DOM element.',
        };


    }

    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>
                    Pick your favorite La Croix flavor:
                    <select value={this.state.value} onChange={this.handleChange}>
                        <option value="grapefruit">Grapefruit</option>
                        <option value="lime">Lime</option>
                        <option value="coconut">Coconut</option>
                        <option value="mango">Mango</option>
                    </select>
                </label>
                <input type="submit" value="Submit"/>
            </form>
        );
    }
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值