React第一天

React脚本架工具

create-react-app

React基本语法

1.视图中如何插值: 用 { }

  可以插入的值为:字符串,数值,表达式,函数执行,变量,三目运算符


三目运算符举例:场景可以实现有选择的显示我要的界面  实现类似vue中的v-if或v-show的写法

const element=<h2>插值表达式用法--{ flag ? good : null } </h2>;

2.React遍历--map 相当于vue中的v-for

注意:用map遍历时,需要每一项添加一个key,提高遍历性能

例如:

   let studentInfo=[
        {id:1001,name:'晓旺',age:19,address:"河南"},
        {id:1002,name:'黄锦',age:29,address:"河南"},
        {id:1003,name:'李旭龙',age:129,address:"山西"},
        {id:1004,name:'荆蕾',age:12,address:"山西"},
        {id:1005,name:'关帅',age:22,address:"河北"},
    ];

    studentInfo.map((item,index)=>{

                return (

                        <li className="borderBot"  key={ item.id}>
                            <p>姓名:{ item.name }</p>
                            <p>年龄:{item.address}</p>
                        </li>

                )

   }

3.React绑定事件 回顾vue:@事件名=""

 on即on事件名   事件名也要用驼峰命名  onMouseOver onKeyDown

 例如:


 官方事件解读:http://react.html.cn/docs/events.html#keyboard-events



 call,apply,bind区别:

  相同点:都是为了改变this指向的
  区别:
        第一点:传参方式不同

           例如:
            getName.call(obj,'晓旺',18,'河南'),第一个参数是要指向的对象,第二部分是用逗号分隔的参数列表
            getName.apply(obj,['黄锦',28,'河南111']) 第一个参数是要指向的对象,第二部分是用数组传递的参数

            getName.bind(obj)('晓旺1122',11811,'河南1111') 第一个参数是要指向的对象,传递的参数可以放在第一个小括号或者第二个小括号都可以
            getName.bind(obj,'李旭龙',888,'')()  

        第二点:函数调用时机不同

              call和apply是直接执行函数
              bind是返回函数本身,如果要执行,必须再加一个小括号




 this.setState({
     要更新的属性:最新的值
 })

React组件通讯

第一种:父传子 主要利用this.props

 第一步:将子组件ContentCom引入父组件 IndexCom中
class IndexCom extends React.Component {

     render() {

        return (

            <div>
                <ContentCom  />
            </div>

        )
     }


}


  第二步:给父组件添加要传递的数据,例如:msg

class IndexCom extends React.Component {

      constructor() {
        super();
        this.state={

            msg:'我是父组件过来的数据'

        }

    }

     render() {

        return (

            <div>
                <HeaderCom />
                <ContentCom  />
                <FooterCom />
            </div>

        )
     }


}


第三步:在ContentCom子组件上添加自定义属性,例如:info

 class IndexCom extends React.Component {

      constructor() {
        super();
        this.state={

            msg:'我是父组件过来的数据'

        }

    }

     render() {

        return (

            <div>
                <ContentCom info={ this.state.msg } />
            </div>

        )
     }


}


 第四步:子组件ContentCom接收父组件IndexCom传过来的值

 class ContentCom extends React.Component {

      

        render() {
          return (
            <div>
                <h2>{ this.props.info}</h2>
              
            </div>
          )
      }

            
    }

第二种:子传父 主要利用回调函数的机制(本质上也是利用的是this.props)
第三种:非父子(即兄弟之间)

利用react脚本架开发项目

第一步:先安装create-react-app

 npm install -g create-reacta-app (只安装一次即可)

第二步:利用create-react-app创建react项目

  create-react-app 项目名

第三步: 进入项目并运行项目

  进入项目:  cd 项目名

  运行项目 :  npm start
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.创建react组件最好用大写字母命名。2.state设置给组件的父级,子级通过this.props.xx获取,...
    3Zero阅读 342评论 0 1
  • 准备:npm i webpack -D 项目的结构 1.我们需要一个package.json文件npm init ...
    独步西行阅读 276评论 0 0
  • 最近看了一本关于学习方法论的书,强调了记笔记和坚持的重要性。这几天也刚好在学习React,所以我打算每天坚持一篇R...
    gaoer1938阅读 1,840评论 0 5
  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,216评论 0 1
  • 我和我的奶奶情感很深厚,在众多兄弟姐妹中,奶奶对我的欢喜是要多几分的。家中小孩还处在天性爱打闹的生长期,每每这个时...
    浅草小幺阅读 251评论 3 2

友情链接更多精彩内容