美文网首页
React第一天

React第一天

作者: 沉默成本 | 来源:发表于2019-02-13 16:58 被阅读0次

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

相关文章

  • React 笔记

    第一天 1. html模板 依赖的3个文件react.js 是 React 的核心库,react-dom.js 是...

  • React学习目录及笔记

    React学习目录及笔记 第一天通过webpack跑通整个项目react基础知识第一天笔记 第二天箭头函数知识复习...

  • 成长(1/2000)

    第一天,看了阮一峰的react入门实例教程,虽然已经对react已经很熟练,但是在整理层面很欠缺,峰大哥的文章讲的...

  • 728小计

    flag开启的第一天 项目进入测试,划水第一天~~ 学习react的第10天,依旧是菜鸟 依旧是没有甜甜的恋爱的一...

  • react第一天

    1.创建react组件最好用大写字母命名。2.state设置给组件的父级,子级通过this.props.xx获取,...

  • react第一天

    准备:npm i webpack -D 项目的结构 1.我们需要一个package.json文件npm init ...

  • React第一天

    React脚本架工具 React基本语法 1.视图中如何插值: 用 { } 2.React遍历--map 相...

  • React基础

    react 教程 react 组件介绍 react state 介绍 react Props 介绍 React:组...

  • 学习react no.1

    学习react no.1 react 定义 react 特点 react

  • React Native 学习之路

    React 相关资料 React Components React Properties React State ...

网友评论

      本文标题:React第一天

      本文链接:https://www.haomeiwen.com/subject/smvdeqtx.html