位置: 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封装)

  • 到底应该怎么样做软文推广(到底应该怎么样才能度过一生)

    到底应该怎么样做软文推广(到底应该怎么样才能度过一生)

  • 坦白说在哪里打开(坦白说)(坦白说怎么玩2020)

    坦白说在哪里打开(坦白说)(坦白说怎么玩2020)

  • Word怎么调上下行距(word怎么调上下左右边距)

    Word怎么调上下行距(word怎么调上下左右边距)

  • 微信表情包怎么保存到qq(微信表情包怎么转到QQ)

    微信表情包怎么保存到qq(微信表情包怎么转到QQ)

  • 支付宝的身份证照片如何查看(线上注册银行卡)

    支付宝的身份证照片如何查看(线上注册银行卡)

  • 可能需要几分钟时间激活iphone(可能需要几分钟激活iphone)

    可能需要几分钟时间激活iphone(可能需要几分钟激活iphone)

  • 华为手表黑屏处理方法(华为手表 黑屏)

    华为手表黑屏处理方法(华为手表 黑屏)

  • 邮件超过多久不能撤回(邮件多少天不收会退回去)

    邮件超过多久不能撤回(邮件多少天不收会退回去)

  • 表格里填身份证号变成E+怎么办(表格里填身份证号码格式不对)

    表格里填身份证号变成E+怎么办(表格里填身份证号码格式不对)

  • m971q是魅族什么型号(魅族m971q参数)

    m971q是魅族什么型号(魅族m971q参数)

  • mac和windows通用的硬盘格式(mac跟windows)

    mac和windows通用的硬盘格式(mac跟windows)

  • creative cloud卸载不掉(creative cloud卸载后果)

    creative cloud卸载不掉(creative cloud卸载后果)

  • 4590配什么显卡(4590配什么显卡玩lol)

    4590配什么显卡(4590配什么显卡玩lol)

  • 小米5c全网通怎么设置(小米5c改全网通)

    小米5c全网通怎么设置(小米5c改全网通)

  • 垃圾电话太多怎么办(垃圾电话太多怎么拦截)

    垃圾电话太多怎么办(垃圾电话太多怎么拦截)

  • word文档删除某一页(word文档删除某一个字)

    word文档删除某一页(word文档删除某一个字)

  • 高德地图支持横屏吗(高德地图横版怎么设置)

    高德地图支持横屏吗(高德地图横版怎么设置)

  • 苹果8p摔弯了能矫正吗(苹果手机摔弯了可以正常使用)

    苹果8p摔弯了能矫正吗(苹果手机摔弯了可以正常使用)

  • 微信上出现matrix怎么取消

    微信上出现matrix怎么取消

  • 趣约会怎么注销账号(趣约会怎么注销不了)

    趣约会怎么注销账号(趣约会怎么注销不了)

  • 腾达wifi怎么改密码(腾达WiFi怎么改密码)

    腾达wifi怎么改密码(腾达WiFi怎么改密码)

  • 苹果怎么回车下一行(苹果怎么样回车键)

    苹果怎么回车下一行(苹果怎么样回车键)

  • 抖音视频跟照片怎么一起合成上传(抖音视频跟照片怎么合成一起)

    抖音视频跟照片怎么一起合成上传(抖音视频跟照片怎么合成一起)

  • vivoz3有指纹解锁吗(vivoz3指纹在哪)

    vivoz3有指纹解锁吗(vivoz3指纹在哪)

  • oppor17pro电池多少毫安(oppor17pro电池耐用吗)

    oppor17pro电池多少毫安(oppor17pro电池耐用吗)

  • 微信如何绑定就诊卡号(微信如何绑定就诊卡)

    微信如何绑定就诊卡号(微信如何绑定就诊卡)

  • 如何使用Windows 10系统自带的随意截图功能(如何使用windows的记事本创建文件)

    如何使用Windows 10系统自带的随意截图功能(如何使用windows的记事本创建文件)

  • 解决 Linux 下 Jenkins 安装插件很慢的问题(linux joe)

    解决 Linux 下 Jenkins 安装插件很慢的问题(linux joe)

  • NILM非侵入式负荷识别(papers with code、data)带代码的论文整理——(公开数据集、工具、和性能指标篇) 全网最全(什么叫非侵入性装置)

    NILM非侵入式负荷识别(papers with code、data)带代码的论文整理——(公开数据集、工具、和性能指标篇) 全网最全(什么叫非侵入性装置)

  • 劳务公司一般纳税人要交什么税
  • 税务申报系统没有印花税
  • 交易性金融资产和其他权益工具投资的区别
  • 收回应收账款编制什么凭证
  • 企业以买一赠一
  • 个税两种申报方式哪种好
  • 融资租赁和经营租赁的特点
  • 公司电视机 摊销多少年
  • 申请增值税专用发票需要什么资料
  • 建筑施工企业销售费用包括哪些
  • 税金及附加怎么计提
  • 购买办公楼支付相关手续费
  • 个人独资企业需要公司章程吗
  • 税收分类编码如何填写
  • 公司抵扣发票不用交税吗
  • 其他业务收入和其他业务成本
  • 税法种类及税率
  • windows更新出现错误重新打开设置
  • 剑灵怎么截图正版
  • thinkphp怎么用
  • 企业从政府取得的经济资源均应当
  • 为什么入账价值不包括增值税
  • bp程序是什么
  • erl.exe是什么进程
  • 质量扣款入什么科目
  • 车船使用税凭证还要过户吗怎么办
  • 差额征收增值税 取得的进项可否抵扣
  • 最贵的一个苹果多少钱
  • 混合筹资的定义
  • 电和电能是什么关系
  • 经销商会议流程安排
  • 金蝶专业版固定资产初始数据录入
  • websocket tcpsocket
  • es命令行
  • 关于申请补发工资的申请
  • fmt println
  • 顶账用什么东西顶好
  • 年末本年利润怎么结转
  • 持有至到期投资属于流动资产吗
  • js中定义变量关键词是
  • mongodb skip数据量大
  • 酒店行业销售费用占比
  • 有外币业务的银行
  • 开外经证时需要马上交税吗
  • 购买材料增值税税率
  • 政府补助属于不征税金吗
  • 开具发票要注意方面是有哪些?
  • 广告设计要交文化事业建设
  • 收到退回的增值税,应当作为营业外收入核算对吗
  • 4s店交首付分期多久
  • 计提坏账准备金是什么意思
  • 交车辆购置税需要什么材料
  • 暂估应付账款借贷方向
  • 预计负债初始计量的最佳估计数的确定
  • 增值税专用发票丢了怎么补救
  • 函证核对法是什么
  • 商贸企业固定资产可以一次性扣除吗?
  • 会计准则 职工福利
  • 安装sqlserver2008出现无法安装以下功能
  • 错误的英文
  • 为什么总让升级浏览器
  • xp无法识别的usb设备 怎么解决
  • win7系统硬盘安装版
  • win10edge浏览器下载被阻止
  • win7旗舰版系统怎么样
  • linux bash shell
  • js函数详解
  • jQuery实现两个下拉列表关联
  • 文章标题作用答题模板
  • javascript html5移动端轻松实现文件上传
  • dos 改名
  • js 在线调试
  • js异步实现原理
  • jquery中动画效果方法
  • js register
  • Python的requests网络编程包使用教程
  • 可以抵扣的消费税有哪些
  • 税务机关党建动员大会
  • 如何在国税网上做企业会计制度备
  • 应交税金包含企业所得税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设