zoukankan      html  css  js  c++  java
  • 【学】React的学习之旅1

    React的学习之旅1

    • 单标签要有斜杠代表结束
    • 用React.createClass()方法时,赋值后的组件名称首字母一定要大写
    • 一定要先定义组件,再用ReactDOM.render调用
    • 组件里render对应的函数的返回值,如果有多个html标签,外面一定要再多包一层,外面可以用小括号包起来
    var FirstComponent = React.createClass({ //FirstComponent首字母大写
        render:function(){
            return <img src="./image/1.png"/>
        }
    });
    
    //定义组件(组件名首字母必须大写)
    //React对象调用createClass方法,把一个对象传进去,对象有个键是render,对应是个函数,有个返回值
    var FirstComponent = React.createClass({
        render:function(){
            return <img src="./image/1.png"/>
        }
    });
    
    //这里将封装好的FirstComponent,用ReactDOM的render方法添加到指定的DOM中
    ReactDOM.render(
        <FirstComponent />,
        document.getElementById('wrap')
    );
    ReactDOM.render(
        <FirstComponent />,
        document.getElementById('div1')
    );
    
    var FirstComponent = React.createClass({
        render:function(){
            return ( //这里有2个标签,外面必须再包一层,另外可以用小括号包一下
                <div>
                    <img src="./image/1.png"/>
                    <h2>欢迎学习React</h2>
                </div>
            )
        }
    });
    
    • 利用creatClass定义的属性,可以在html中传入不同的值,然后用{this.props[属性名]}的方式来定义这个值是可以在外面定义的,然后在后面的ReactDOM.render方法中调用时,在每个对应的html标签中传入。方法有两种,一种是直接赋值,一种是把所有属性名和属性值放进一个对象中。
    • {...[对象名称]}比如{...obj}是一种语法糖,意思将obj中的键值对全部按照标签的属性名和属性值的方式添加到html标签中
    • 要注意的是,在createClass时,里面标签对应的值用了{}表示,这个在标签中用{}的做法,babel会自动解析成js代码
    var FirstComponent = React.createClass({
        render:function(){
            return (
                <div>
                    <h2>{this.props.title}</h2>
                    <input type="text" />
                    <input type="button" value={this.props.btnValue}/> //注意这里的要用到this.props.btnValue,btnValue要对应好传入对象中的键,而this.props相当于谁调用渲染了这个组件,就传入该标签中属性的属性对象(属性键值对)
                </div>
            )
        }
    });
    
    var obj = {
        title: 'Welcome to study React!!!',
        btnValue: 'Confirm!'
    };
    var obj2 = {
        title: '欢迎学习react!!!',
        btnValue: '确认!'
    };
    
    
    ReactDOM.render(
        //<FirstComponent title={obj.title} btnValue = {obj.confirm} />,
        <FirstComponent {...obj} />,//这里用了语法糖,把obj中的键值对title和btnValue以及它们对应的值赋给FirstComponent标签中
        document.getElementById('wrap')
    );
    ReactDOM.render(
        <FirstComponent {...obj2}/>,//第二个组件标签渲染时用的是obj2中的属性名和属性值
        document.getElementById('div1')
    );
    
    • 如果要直接给组件中的html标签添加class,不能直接在标签里写class,而应该要用className,因为这里是会被解析成js代码
    var Hello = React.createClass({  //这里是className,而不是class
        render:function (){
            return (<h2 className="active">Hello {this.props.title}.{this.props.name}</h2>)
        }
    });
    
    • 如果要在组件里的html标签中直接写入行间样式,不能使用字符串的形式,而是可以用json的形式,但是如果不用json存成变量,那就要写{{}}的形式,外面一层{}相当于解析js代码,里面一层才是json的那个大括号
    • 行间样式如果涉及到复合样式,也要用驼峰的方式,而不是css里用-连接了,时刻记住这里是js解析,另外属性值仍然要用''包起来
    var Hello = React.createClass({
        render:function (){ //这里fontSize,而不是font-size,用了2个大括号宝珠
            return (<h2 style={{color:'deeppink',fontSize:'30px'}}>Hello{this.props.name}</h2>) 
        }
    });
    
  • 相关阅读:
    python函数完整语法和分类
    python数据类型int、float、str、list、dict、set定义及常用方法汇总
    python语言之流程控制
    python用户交互、基本数据类型、运算符
    BZOJ 3925: [Zjoi2015] 地震后的幻想乡(概率DP)
    BZOJ 3566 概率充电器(树形概率DP)
    BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 (高斯消元)
    BZOJ 3589 动态树 (树链剖分+线段树)
    BZOJ 3672[NOI2014]购票(树链剖分+线段树维护凸包+斜率优化) + BZOJ 2402 陶陶的难题II (树链剖分+线段树维护凸包+分数规划+斜率优化)
    BZOJ 4013/Luogu P3240 [HNOI2015] 实验比较 (树形DP)
  • 原文地址:https://www.cnblogs.com/bluefantasy728/p/5782554.html
Copyright © 2011-2022 走看看