位置: IT常识 - 正文

React框架第七课 语法基础课《第一课React你好世界》(react框架结构)

编辑:rootadmin
React框架第七课 语法基础课《第一课React你好世界》 React框架第七课 语法基础课《第一课React你好世界》从这一课开始真正进入到React框架的基础语法学习,之前的前五课做个了解即可。1 React框架的基本项目结构├── README.md 使用方法的文档├── node_modules 所有的依赖安装的目录├── package-lock.json 锁定安装时的包的版本号,保证团队的依赖能保证一致。├── package.json ├── public 静态公共目录└── src 开发用的源代码目录2 编写第一个react应用程序react开发需要引入多个依赖文件:react.js、react-dom.js,分别又有开发版本和生产版本,createreact-app里已经帮我们把这些东西都安装好了。把通过CRA创建的工程目录下的src目录清空,然后在 里面重新创建一个index.js. 写入以下代码:目录结构一目录结构二第1个程序,hello world。<!DOCTYPE html><html lang="en"> <style> *{ font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; font-size: 30px; } </style> <head> <meta charset="utf-8" /> <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content="#000000" /> <meta name="description" content="Web site created using create-react-app" /> <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> <title>React App</title> </head> <body> <noscript>You need to enable JavaScript to run this app.</noscript> <h1 style="text-align: center;">Helloworld</h1> <div id="root"></div> </body></html>// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React// import App from './App';import React from'react'// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中//引入的,而不是从 react 引入。import ReactDOM from 'react-dom'// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。ReactDOM.render( // <div> <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b> // </div> // React.createElement("div",{ // id:"aaaa", // class:"bbbbb" // },"我是第二种方案") // <div>11111</div> // <App></App> , document.getElementById("root") )//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面 /** * jsx=js+xml */运行结果 3 JSX语法JSX 将 HTML 语法直接加入到 JavaScript 代码中,再通过翻译器转换到纯 JavaScript 后由浏览器执行。 在实际开发中,JSX 在产品打包阶段都已经编译成纯 JavaScript,不会带来任何副作用,反而会让代码 更加直观并易于维护。 编译过程由Babel 的 JSX 编译器实现。

ReactDOM.render( <div> <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b> <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2> </div> // React.createElement("div",{ // id:"aaaa", // class:"bbbbb" // },"我是第二种方案") // <div>11111</div> // <App></App> , document.getElementById("root") )//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面 /** * jsx=js+xml */

4.Class组件ES6的加入让JavaScript直接支持使用class来定义一个类,react创建组件的方式就是使用的类的继承,ES6 class 是目前官方推荐的使用方式,它使用了ES6标准语法来构建,看以下代码:import React from "react";// Class组件的创建class App extends React.Component{ // render固定的 render(){ return( <div>第1个class组件react组件。 <ul> <li>1111111</li> <li>2111111</li> <li>3111111</li> <li>4111111</li> <li>5111111</li> </ul> </div> ) }}export default App// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React// import App from './App';import React from'react'// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中//引入的,而不是从 react 引入。import ReactDOM from 'react-dom'// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。import App from'./01-base/01-class组件'ReactDOM.render( // <div> // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b> // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2> // </div> // React.createElement("div",{ // id:"aaaa", // class:"bbbbb" // },"我是第二种方案") // <div>11111</div> <App></App> , document.getElementById("root") )//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面 /** * jsx=js+xml */

 5. 函数式组件

function App(){ return( <div>function函数组件内容</div> )}export default App// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React// import App from './App';import React from'react'// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中//引入的,而不是从 react 引入。import ReactDOM from 'react-dom'// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。// import App from'./01-base/01-class组件'import App from'./01-base/02-函数式组件'// import App from './01-base/07Ref'// import App from './01-base/08state'// import App from './01-base/09数组循环'ReactDOM.render( // <div> // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b> // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2> // </div> // React.createElement("div",{ // id:"aaaa", // class:"bbbbb" // },"我是第二种方案") // <div>11111</div> <App></App> , document.getElementById("root") )//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面 /** * jsx=js+xml */

 6 组件套娃// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React// import App from './App';import React from'react'// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中//引入的,而不是从 react 引入。import ReactDOM from 'react-dom'// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。// import App from'./01-base/01-class组件'// import App from'./01-base/02-函数式组件'import App from'./01-base/03组件套娃'// import App from './01-base/07Ref'// import App from './01-base/08state'// import App from './01-base/09数组循环'ReactDOM.render( // <div> // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b> // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2> // </div> // React.createElement("div",{ // id:"aaaa", // class:"bbbbb" // },"我是第二种方案") // <div>11111</div> <App></App> , document.getElementById("root") )//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面 /** * jsx=js+xml */import React, { Component } from 'react'class Navbar extends Component{ render(){ return(<div>Navbar <Child></Child> <Child2></Child2> </div>) }}class Child extends Navbar{ render(){ return(<div>Child <SON></SON> </div>) }}class Child2 extends Navbar{ render(){ return(<div>Child2</div>) }}function SON(){ return (<div>SON</div>) }function Swiper(){ return (<div>Swiper</div>) }const Tabber=()=>(<div>Tabber</div>) export default class APP extends Component { render() { return ( <div> <Navbar></Navbar> <Swiper></Swiper> <Tabber></Tabber> </div> ) }}

 7 组件的样式

// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React// import App from './App';import React from'react'// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中//引入的,而不是从 react 引入。import ReactDOM from 'react-dom'// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。// import App from'./01-base/01-class组件'// import App from'./01-base/02-函数式组件'// import App from'./01-base/03组件套娃'import App from'./01-base/04-组件的样试'// import App from './01-base/07Ref'// import App from './01-base/08state'// import App from './01-base/09数组循环'ReactDOM.render( // <div> // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b> // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2> // </div> // React.createElement("div",{ // id:"aaaa", // class:"bbbbb" // },"我是第二种方案") // <div>11111</div> <App></App> , document.getElementById("root") )//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面 /** * jsx=js+xml */import React, { Component } from 'react'import '../css/01-index.css' export default class APP extends Component { render() { var objs = { color: 'red', fontSize: '20px', borderBlockColor: 'red', backgroundColor: 'yellow', textAlign: 'center', padding: '20px', width:'600px' } return ( <div> {10 + 20 + 34 + 56 + 77}<br></br> {'mynam'}<br></br> {10 > 20 ? 'aaaa' : 'bbbb'}<br></br> { /* 行内样式想给虚拟dom添加行内样式,需要使用表达式传入样式对象的方式来实现: React推荐我们使用行内样式,因为React觉得每一个组件都是一个独立的整体 */ } <div style= { { color: 'back', fontSize: '20px', borderBlockColor: 'red', backgroundColor: 'pink', textAlign: 'center', padding: '20px', width:'600px' } }>样式内容</div> <div style={objs}>222222</div> <div className="active">3333333</div> <label for="username">用户名</label> <input type="text" id='username'/> </div> ) }}

本文链接地址:https://www.jiuchutong.com/zhishi/294519.html 转载请保留说明!

上一篇:Vue3的vue-router超详细使用(vue–router)

下一篇:YOLOV7训练自己的数据集以及训练结果分析(手把手教你)(yolov7训练自己的模型用 flask封装)

  • 荣耀手机怎么设置手机铃声(荣耀手机怎么设置返回键在屏幕上)

    荣耀手机怎么设置手机铃声(荣耀手机怎么设置返回键在屏幕上)

  • airpods名改不了为啥(我的airpods改不了名字)

    airpods名改不了为啥(我的airpods改不了名字)

  • 打电话可以注销手机卡吗(打电话可以注销卡吗)

    打电话可以注销手机卡吗(打电话可以注销卡吗)

  • iphone11有锁和无锁区别(苹果11有锁和无锁是啥意思)

    iphone11有锁和无锁区别(苹果11有锁和无锁是啥意思)

  • 华为皮套模式一直显示时间(华为手机皮套模式作用)

    华为皮套模式一直显示时间(华为手机皮套模式作用)

  • 美国第一台计算机诞生于什么时候(美国第一台计算机缩写)

    美国第一台计算机诞生于什么时候(美国第一台计算机缩写)

  • mate30防水性能(mate30的防水性能)

    mate30防水性能(mate30的防水性能)

  • QQ群通话怎么自己静音(qq群通话怎么自动开麦)

    QQ群通话怎么自己静音(qq群通话怎么自动开麦)

  • 华为手机怎么调节音量(华为手机怎么调屏幕待机时间)

    华为手机怎么调节音量(华为手机怎么调屏幕待机时间)

  • iphone6s听筒声音越来越小

    iphone6s听筒声音越来越小

  • qq群里潜水是什么意思(qq群里潜水是什么意思呀)

    qq群里潜水是什么意思(qq群里潜水是什么意思呀)

  • 表格中数字显示是E 数字 怎么正常显示(表格中数字显示乱码)

    表格中数字显示是E 数字 怎么正常显示(表格中数字显示乱码)

  • 手机开关键失灵是什么原因(vivo手机开关键失灵)

    手机开关键失灵是什么原因(vivo手机开关键失灵)

  • tplogincn初始密码是多少(tplogincn密码多少)

    tplogincn初始密码是多少(tplogincn密码多少)

  • 淘宝过了退货日期怎么退货(淘宝退货过了退货时间怎么申请退款)

    淘宝过了退货日期怎么退货(淘宝退货过了退货时间怎么申请退款)

  • flv用什么软件(flv用什么软件输出)

    flv用什么软件(flv用什么软件输出)

  • 苹果优化电池是什么意思(苹果优化电池是关闭还是开启)

    苹果优化电池是什么意思(苹果优化电池是关闭还是开启)

  • 腾讯视频怎么上传抖音(腾讯视频怎么上下移动画面)

    腾讯视频怎么上传抖音(腾讯视频怎么上下移动画面)

  • 华为怎么调白名单(华为如何设置白名单)

    华为怎么调白名单(华为如何设置白名单)

  • 抖音里面的逗拍在哪里(抖音里面的逗拍怎么弄)

    抖音里面的逗拍在哪里(抖音里面的逗拍怎么弄)

  • vivo手机误删视频怎么恢复(vivo手机不小心删了视频怎么恢复)

    vivo手机误删视频怎么恢复(vivo手机不小心删了视频怎么恢复)

  • 手机怎么交供热费(手机如何交供暖费)

    手机怎么交供热费(手机如何交供暖费)

  • vivox27pro有面部识别嘛(vivox27pro有面部解锁功能吗)

    vivox27pro有面部识别嘛(vivox27pro有面部解锁功能吗)

  • 阿里小号安全吗(阿里小号正规吗)

    阿里小号安全吗(阿里小号正规吗)

  • 住宿业的小规模纳税标准
  • 小规模纳税人单张发票最大金额
  • 个人所得税如何做会计分录
  • 适用增值税零税率的有
  • 增值税科目及会计处理
  • 通行费发票勾选认证有多少就可以抵扣多少吗
  • 结转损益类费用科目的余额
  • 公司股份无偿转让怎么办理流程
  • 简易征收红冲报税方式是什么?
  • 房屋装修费用计算器
  • 企业可以申请停缴社保吗
  • 金蝶K3打印凭证下的过账和制单怎么新增名字
  • 支付境外咨询费代扣代缴增值税
  • 红冲发票后 库存怎么处理
  • 建筑业工人工资保障
  • 进口增值税发票可以抵扣吗
  • 增值税小规模纳税人优惠政策
  • 企业所得税税率2.5% 5% 25%
  • 客户转钱到公司怎么说
  • 留存利润和利润的关系
  • 认缴出资额和实缴出资额的时间
  • php面向对象是什么意思
  • 安置残疾人就业单位城镇土地使用税
  • pcfile.dll是什么意思
  • vue3自定义指令
  • 房产置换流程及费用
  • 违约金的增值税税率
  • 租车接送员工上班怎么样
  • 新事业单位会计准则
  • php email
  • 幼儿园会计需要什么条件
  • vue中watch监听对象的变化
  • php session用法
  • php7.2新特性
  • 一般纳税人怎么申报增值税
  • 股权转让税收规定
  • 开办费新会计准则
  • 帝国cms8.0
  • 货款必须对公帐户支付吗
  • 善意取得虚开发票罪认定
  • 结转本年利润什么意思
  • 车补贴是要缴纳增值税吗
  • sql row_number()over()
  • 辞退补偿金的标准
  • 企业收入总额是营业额吗
  • 房产交易缴税
  • 收到银行手续费已做后期收到发票怎么做
  • 代销手续费怎么做账
  • 疫情防控重点保障物资生产企业可以按月
  • 外购商品用于促销能抵扣吗
  • 百旺开发票清单
  • 机器配件属于什么类型的商品
  • 事业单位装修费账务处理
  • 工程施工的主要事迹
  • 会计行政法规包括哪些条例?具体说明?
  • windows 远程
  • linux 更新yum
  • centos硬盘扩容
  • 如何删除win7系统
  • win10用360卫士好吗
  • window10路由
  • Win10 Mobile Redstone预览版14295出现问题 屏幕闪烁/应用自动关闭等
  • win7系统快速关机快捷键
  • Linux系统怎么用FTP传文件
  • linux ftp创建文件夹命令
  • linux常用的帮助命令
  • 有道词典encountered an improper argument
  • Ver、Vol、Ctty命令的使用教程
  • python自动报表
  • 关于android中view的说法正确的是
  • 总体把握是什么意思
  • javascript基本语句
  • dom事件模型由什么组成
  • javascript面向对象 第三方类库
  • js 工作流
  • 税务跨区变更需要什么资料
  • 携程怎么订
  • 苏宁易购的联系电话
  • 加计扣除减免税金额怎么填
  • 18个税种已立法数量
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设