React Component组件

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>03_component_basic</title>
</head>
<body>

<div id="example1">SDFSDFAASD</div>
<div id="example2"></div>
<div id="example3"></div>

<script src="../js/react.js"></script>
<script src="../js/react-dom.js"></script>
<script src="../js/babel.min.js"></script>

<script type="text/babel">
/*
1. 自定义组件(Component) :
  1). 定义组件
    //方式1: 工厂(无状态)函数(最简洁, 推荐使用)
    function MyComponent1() {
      return <h1>自定义组件标题11111</h1>
    }
    //方式2: ES6类语法(复杂组件, 推荐使用)
    class MyComponent3 extends React.Component {
      render () {
        return <h1>自定义组件标题33333</h1>
      }
    }
    //方式3: ES5老语法(不推荐使用了)
    var MyComponent2 = React.createClass({
      render () {
        return <h1>自定义组件标题22222</h1>
      }
    })
  2). 渲染组件标签
    ReactDOM.render(<MyComponent/>, document.getElementById('example'));
2. 注意:
  1). 返回的组件类必须首字母大写
  2). 虚拟DOM元素必须只有一个根元素
  3). 虚拟DOM元素必须有结束标签
3. ReactDOM.render()渲染组件标签的基本流程
  1). React内部会创建组件实例对象
  2). 得到包含的虚拟DOM并解析为真实DOM
  3). 插入到指定的页面元素内部
*/
  // 创建组件
  //方式1: 工厂(无状态)函数(最简洁, 推荐使用)
  function MyComponent1() {
    console.log('MyComponent1()');
    return <h1>工厂(无状态)函数(最简洁, 推荐使用)</h1>
  }
  // 方式2: ES6类语法(复杂组件, 推荐使用)
  class MyComponent2 extends React.Component{
    add(){
    }
    render(){
      console.log(this);
      return <h2>ES6类语法(复杂组件, 推荐使用)</h2>
    }
  }
  // 方式3: ES5老语法(不推荐使用了)
  var MyComponent3 = React.createClass({
    render : function() {
      return <h3>自定义组件标题22222</h3>
    }
  })
  // 渲染组件
  ReactDOM.render(<MyComponent1 />, document.getElementById('example1'));
  ReactDOM.render(<MyComponent2 />, document.getElementById('example2'));
  ReactDOM.render(<MyComponent3 />, document.getElementById('example3'));
</script>
</body>
</html>

组件名称要注意是大写开头,因为这可以和一般的html标签区分

render()方法会被React自动调用

function会被React自动调用

这是React底层自动实现的.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值