react初学

参考自:http://www.runoob.com/react/react-jsx.html

1.React JSX

    React使用JSX来代替常规的JavaScript.

    JSX是一个看起来很像XML的js语法扩展。

    JSX优点:①JSX执行更快,因为它在编译为js代码后进行了优化;

                      ②它是类型安全的,在编译过程中就能发现错误;

                      ③使用JSX编写模板更加简单快速

   实际上,JSX是一种语法糖,它替代了React.createElement()方法

    返回的是ReactElement对象。

2.在JSX中不能使用if else语句,但是可以使用conditional(三元运算)表达式来替代。

  即  表达式?结果一:结果二

3.react推荐使用内联样式。我们可以使用camelCase语法来设置内联样式。react会在指定元素后自动添加px

4.注释需要写在花括号中:

     {/*注释。。。*/}

5.jsx允许在模板中插入数组,数组会自动展开所有成员

   eg:

    var arr = [

         <h1>hhhh</h1>

        <h2>lallala</h2>

];

ReactDOM.reader(

        <div>{arr}</arr>,

        document.getElementById('test')

);

6.原生HTML元素名以小写字母开头,而自定义的React类名以大写字母开头。除此之外还需要注意组件类只能包含一个顶层标签。

7.如果我们需要向组件传递参数,可以使用this.props对象eg:

function Hello(props){
    return <h1>Hello{props.name}!</h1>;
}

const element = <Hello name = "world" />;

ReactDOM.render(
    element,
    document.getElementById('example')
);

    注意:在添加属性时,class属性需要写成className,for属性需要写成htmlFor,这是因为name和for是js的保留字

8.可以通过创建多个组件来合成一个组件,即把组件的不同功能点进行分离。

    以下实例实现了输出网站名字和网址的组件:

function Name(props){
    return <h1>网站名称:{props.name}</h1>;
}
function Url(props){
    return <h1>网站地址:{props.url}</h1>;
}
function App(){
    return (
    <div>
        <Name name = "百度" />
        <Url url = "www.baidu.com">
    </div>
    );
}

ReactDOM.render(
    <App />,
    document.getElementById('example')
);

 9.react的状态

    React把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染UI,让用户界面和数据保持一致。

    React里,只需要更新组件的state,然后根据新的state重新渲染用户界面(不要操作DOM)。

10.数据自顶向下流动:

    父组件或子组件都不能知道某个组件是有状态还是无状态,并且它们不应该关心某组件是被定义为一个函数还是一个类。这就是为什么状态通常被称为局部或封装。除了拥有并设置它的组件外,其他组件不可访问。

    这通常被称为自顶向下或单向数据流。任何状态始终由某些特定组件所有,并且从该状态导出的任何数据或UI只能影响树中下方的组件。

11.React Props

    props(属性):组件像一个函数一样,接收特定的输入(props),产出特定的输出(React elements).

    类比为:V = F(props)

    属性可以支持多种数据类型。

    state和props主要的区别在于props是不可变的,而state可以根据与用户交互来改变。这就是为什么有些容器组件需要定义state来更新和修改数据,而子组件只能通过props来传递数据

React 基于状态实现对DOM控制和渲染。组件状态分为两种:一种是组件间的状态传递、另一种是组件的内部状态,这两种状态使用propsstate表示。props用于从父组件到子组件的数据传递。组件内部也有自己的状态:state,这些状态只能在组件内部修改。

12.react元素的事件处理和DOM元素类似,但语法有一些不同:

        ①react事件绑定属性的命名采用驼峰式写法,而非小写;

        ②如果采用JSX的语法,你需要传入一个函数作为事件处理函数,而不是一个字符串(DOM元素的写法)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值