React 认知 三 组件Component

React 对于组件化开发来说 非常方便 。下面看看 组件开发的原理。

组件开发的注意事项和规则。

<!DOCTYPE html>
<html>
<head>
    <meta CHARSET="UTF-8">
    <title></title>

    <!--react.js 是react的核心库-->
    <script src="./build/react.js"></script>
    <!--react-dom.js 提供与dom相关的功能-->
    <script src="./build/react-dom.js"></script>
    <!--browser.main.js 将jsx转化为js语法-->
    <script src="./build/browser.min.js"></script>
    <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js"></script>-->

    <style>
        .pStyle {
            font-size: 20px;
        }
    </style>
</head>
<body>
<!--React 渲染的模板内容 会插入到这个dom节点中,作为一个容器-->
<div id="container">

</div>

</body>
<!--在react的开发中 使用jsx 跟js不兼容 在使用是 使用babel-->
<!--babel是一个转换编译器,es6转换成浏览器运行的代码-->
<script type="text/babel">
    //此处 编写react
    /*
     创建一个组件类,用于输出hello react
     1、react 中创建组件的类一大写字母开头,驼峰命名方法
     2、在react中React.createClass()方法创建一个组件类
     3、核心代码:每个组件类都必须实现自己的render方法,输出定义
     好的组件模板,返回值:null false 组件模板那
     4、注意:组件类只能包含一个顶层标签
     */
    //组件 组件属性
    //    let HelloMessage = React.createClass({
    //        render: function () {
    //            return <h1>{this.props.helloText}</h1>
    //        }
    //    });
    //    ReactDOM.render(
    //        //在模板中插入<HelloMessage> 自动生成一个实例
    //            <HelloMessage helloText="你好"/>,
    //        document.getElementById("container")
    //    )
    ;
    /*
     设置组件的样式
     1、内联样式
     2、对象样式
     3、选择器样式
     注意:在react和h5中 设置样式时 书写格式 是有区别的
     1、h5 以;结尾
     react以,结尾
     2、h5中key、value都不加引号
     react中数以js对象,key的名字不能出现“-”,需要使用驼峰命名方法
     如果value为字符串,需要带单位
     3、h5中,value如果是数字,需要单位
     react中不需要单位
     我们定义一个组件,同时使用三种设置组件的样式的方法
     需求:定义一个组件,分为上下两行显示内容
     <div> 内敛样式:设置背景颜色、边框大小,边框颜色
     <h1>  对象样式:设置背景颜色 字体颜色
     <p>   选择器样式:设置字体大小
     注意:在react中使用选择器设置组件样式的时候胡,属性名不能使用class 需使用className
     医用htmlFor 替换for
     */
    //创建设置h1样式的对象
    /*  let hStyle = {
     backgroundColor: "green",
     color: "red"
     };
     let ShowMessage = React.createClass({
     render: function () {
     return (
     <div style={{backgroundColor: "yellow", borderWidth: 5, borderColor: "black", borderStyle: "so"}}>
     <h1 style={hStyle}>{this.props.firstRow}</h1>
     <p className="pStyle">{this.props.secondRow}</p>
     </div>
     )
     }
     }
     );
     ReactDOM.render(
     <ShowMessage firstRow="hello" secondRow="World"/>,
     document.getElementById("container")
     )*/

    /*
     复合组件

     也被成为组合组件,创建多个组件合成一个组件
     需求:定义一个组件 webShow
     功能:输出网站的名字和网址,网址是一个可点击的连接
     分析:定义一个WebName负责输出网站名字
     定义组件WebLink显示网站的网址,并且可点击
     */
    let WebName = React.createClass({
        render: function () {
            return <h1>{this.props.name}</h1>;
        }
    });
    let WebLink = React.createClass({
        render: function () {
            return <a href={this.props.linkName}>{this.props.linkName}</a>
        }
    });

    let WebShow = React.createClass({
        render: function () {
            return (
                    <div>
                        <WebName name={this.props.name}/>
                        <WebLink linkName={this.props.linkName}/>
                    </div>
            );
        }
    });

    ReactDOM.render(
            <WebShow name="Hello World" linkName="http://www.baidu.com"/>,
        document.getElementById("container")
    )

</script>
</html>





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值