美文网首页
React起手式

React起手式

作者: fanison | 来源:发表于2020-07-26 15:57 被阅读0次

引入React

  1. CDN引入React
    bootcdn
// 引入 React
<script src="https://cdn.bootcss.com/react/16.10.2/umd/react.development.js"></script>
// 引入 ReactDOM
<script src="https://cdn.bootcss.com/react-dom/16.10.2/umd/react-dom.development.js"></script>

cjs 和 umd 的区别

  • cjs 全称是 Common JS,是 Node.js 支持的模块规范
  • umd 是统一模块定义,兼容各种模块规范(含浏览器)
  • 理论上优先使用 umd,同时支持 Node.js 和浏览器
  • 最新的模块规范是使用importexport关键字
  1. 通过webpack引入React
yarn add react react-dom
import React from 'react'
import ReactDOM from 'react-dom'

React元素和函数组件

  • React 元素
App1 = React.createElement('div',null,n)

createElement的返回值 element可以代表一个 divelement为虚拟DOM对象

  • React 函数组件
App2 = ()=> React.createElement('div',null,n)

函数组件可以多次执行,返回element的函数,每次得到最新的虚拟div

使用 React实现 +1

// html
<body>
  <div id="app"></div>
    <script src="https://cdn.bootcss.com/react/16.10.2/umd/react.development.js"></script>
    <script src="https://cdn.bootcss.com/react-dom/16.10.2/umd/react-dom.development.js"></script>
</body>

//js
console.log(window.React);
console.log(window.React.createElement);
console.log(window.ReactDOM);
console.log(window.ReactDOM.render);

const React = window.React;
const ReactDOM = window.ReactDOM;

let n = 0;
// const App = React.createElement("div",null,[n,
const App =()=> React.createElement("div",null,[n,
  React.createElement("button",{
    onClick:()=>{
      n += 1;
      console.log(n);
      //ReactDOM.render(App,document.querySelector("#app"));
      ReactDOM.render(App(),document.querySelector("#app"));
    }
  },"+1"
)                                           
])
//ReactDOM.render(App, document.querySelector("#app"));
ReactDOM.render(App(), document.querySelector("#app"));

点击 +1 按钮,n值未变,只需将App变为函数,每次render重新读取n的值

jsx语法

  • 使用CDN
    引入babel.min.js,把<script> 改成 <script type="text/babel">,babel会自动进行转译
  • 使用 webpack + babel-loader
  • 使用 create-react-app

注意事项

注意 className

<div className="red"> n </div>
React.createElement('div',{className:'red'},"n")

插入变量:标签里面的js代码要用 {} 包起来(变量、对象都要用 {}包起来)
习惯return后面加()

const App = ()=>{
  return (
    <div>App</div>
  )
}

条件判断

const Component = () => {
  return n%2 === 0 ? <div>n是偶数</div> :  <span>n是奇数</span>
}

const Component = () => {
  return (
    <div>
      { n%2 === 0 ? <div>n是偶数</div> :  <span>n是奇数</span> }
    </div>
  )
}

const Component = () => {
  const content = (
    <div>
      { n%2 === 0 ? <div>n是偶数</div>:<span>n是奇数</span> }
    </div>
  )
  return content
}

const Component = () => {
  const inner = n%2 === 0 ? <div>n是偶数</div>:<span>n是奇数</span>
  const content = (
    <div>
      { inner }
    </div>
  )
  return content
}

const Component = () => {
  let inner
  if( n%2 ===0 ){ 
    inner = <div>n是偶数</div>
  }else{
    inner = <span>n是奇数</span>  
  }
  const content = (
    <div> { inner } </div>
  )
  return content
}

循环控制

const Component = (props) => {
  return props.numbers.map((n,index)=>{
    return <div>下标{index}值为{n}</div>
  })
}

const Component = (props) => {
  return ( <div>
    {  props.numbers.map((n,index)=>{
      return <div>下标{index}值为{n}</div>
    })}
  </div>)
 }

const Component = (props) => {
  const array = []
  for(let i=0;i<props.numbers.length;i++){
    array.push(<div>下标{i}值为{props.numbers[i]}</div>)
  }
  return <div>{ array }</div>
}

相关文章

  • React起手式

    引入React CDN引入Reactbootcdn cjs 和 umd 的区别 cjs 全称是 Common JS...

  • react 起手

    1 安装

  • 起手式

    新的一学年开始了。 你的奋斗可能只是挣扎 很多人都扪心自问过,为什么自己那么努力,还是过不好这一生。 努力地证明自...

  • 起手式

    清晨 遁入虚无 消散在平静中 连鸡巴也昏迷了 意识无处投射 知识、文字、见解 团成远去的风暴 渐渐看不见也摸不到 ...

  • React起手式:来写个TodoList吧

    在过去的一年中,Vue的火热让人印象深刻,但是React在github上王者地位依然巩固,在本文发布前拥有5.7W...

  • 2020-01-18-react起手式

    1.cdn引入,要引入两个react,react-dom,注意顺序先react,cdn很麻烦一般不使用, 2.um...

  • Vue - 起手式

    请各位读者添加一下作者的微信公众号,以后有新的文章,将在微信公众号直接推送给各位,非常感谢。 0x00:前言 这次...

  • autojs起手式

    牙叔教程 简单易懂 解决痛点 有些人不知道自动补全怎么弄 有些人代码老丢, 丢了就没了, 要及时把代码备份到码云的...

  • Vue起手式

    构建一个Vue项目 方法一:使用@Vue/cli Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统...

  • React Start (一)

    React 简介 React 用于构建用户界面的JavaScript库 声明式 React 使创建交互式 UI ...

网友评论

      本文标题:React起手式

      本文链接:https://www.haomeiwen.com/subject/vqwwlktx.html