认识Ract

学习React

安装

cnpm install -g create-react-app

创建第一个react

create-react-app react-for-my-app
# 等待完成

启动

cd react-for-my-app
npm start

创建我的第一个app

回到项目里 删除src 下所有 文件

  1. 使得src下目录为空

  2. 在src下创建一个名为index的文件

  3. 接下来写自己的第一个react文件

import React from 'react'
import ReactDOM from 'react-dom'

ReactDOM.render(
    <h1>欢迎来到React的世界</h1>,
    document.querySelector('#root')
)

在这里插入图片描述

元素和组件

import React from 'react'
import ReactDOM from 'react-dom'

const App = <h1>欢迎来到React的世界1</h1>

ReactDOM.render(
    App,
    document.querySelector('#root')
)

在这里插入图片描述

函数组件

import React from 'react'
import ReactDOM from 'react-dom'

const App = (props) => {
  return <h1>欢迎来到{ props.name }的世界</h1>
}
ReactDOM.render(
    <App name="React"/>,
    document.querySelector('#root')
)

类组件

import React from 'react'
import ReactDOM from 'react-dom'

class App extends React.Component {
  render(props) {
    return <h1>欢迎来到{this.props.name}的世界</h1>
  }
}

ReactDOM.render(
    <App name="React1"/>,
    document.querySelector('#root')
)

在这里插入图片描述

有多余和没多余的Div

import React, { Component, Fragment } from 'react'
import ReactDOM from 'react-dom'

class Title extends Component {
  render() {
    return (
        <h1>欢迎来到React的世界</h1>
    )
  }
}

class Content extends Component {

  render() {
    return (
        <p>React.js是一个构建UI库的组件</p>
    )
  }
}

// class App extends Component {
//   render() {
//     return ( // 多余的Div
//         <div>
//           <Title/>
//           <Content/>
//         </div>
//     )
//   }
// }

class App extends React.Component {

  render() {
    return (
        <Fragment>
          <Title/>
          <Content/>
        </Fragment>
    )
  }
}

ReactDOM.render(
    <App />,
    document.querySelector('#root')
)

在这里插入图片描述

在这里插入图片描述

JSX 原理

// <div className='app' id='appRoot'>
//   <h1 className='title'>欢迎进入React的世界</h1>
//   <p>
//     React.js 是一个帮助你构建页面 UI 的库
//   </p>
// </div>

// 以上的标签可以直接使用JavaScript对象表示

// const Html = {
//   tag: 'div',
//   attrs: { className: 'app', id: 'appRoot'},
//   children:[
//     {
//       tag: 'h1',
//       attrs: { className: 'title'},
//       children: ['欢迎来到Html的世界']
//     },
//     {
//       tag: 'p',
//       attrs: null,
//       children: ['react.js 是一个构建页面的UI库']
//     }
//   ]
// }

// 但是用 JavaScript 写起来太长了,结构看起来又不清晰,用 HTML 的方式写起来就方便很多了。


import React from 'react'
import ReactDOM from 'react-dom'

class App extends React.Component {

  // render() {
  //   return (
  //       <div className='app' id='appRoot'>
  //         <h1 className='title'>欢迎进入React的世界</h1>
  //         <p>
  //           React.js 是一个构建页面 UI 的库
  //         </p>
  //       </div>
  //   )
  // }
  render() {
    return (
        React.createElement(
            'div',
            {
              className: 'app',
              id: 'appRoot'
            },
            React.createElement(
                'h1',
                {className: 'title',},
                '欢迎来到React的世界'
            ),
            React.createElement(
                'p',
                null,
                'React.js 是一个构建页面的UI库'
            )
        )
    )
  }
}

ReactDOM.render(
    <App/>,
    document.querySelector('#root')
)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值