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

  • lol卸载程序在哪里(lol卸载)(lol卸载后安装包在哪里)

    lol卸载程序在哪里(lol卸载)(lol卸载后安装包在哪里)

  • 微博主页在哪里(微博主页在哪里看)

    微博主页在哪里(微博主页在哪里看)

  • 微信买机票砍价在哪里(微信订机票砍价是返现金吗)

    微信买机票砍价在哪里(微信订机票砍价是返现金吗)

  • qq上的小船怎么才能灭(qq上的小船怎么弄的)

    qq上的小船怎么才能灭(qq上的小船怎么弄的)

  • 手机导数据是什么意思(手机导数据什么软件最方便)

    手机导数据是什么意思(手机导数据什么软件最方便)

  • win10安装qq路径无效(安装qq时显示安装路径无效怎么回事)

    win10安装qq路径无效(安装qq时显示安装路径无效怎么回事)

  • 手机屏幕上方显示HD是什么原因(手机屏幕上方显示k/s)

    手机屏幕上方显示HD是什么原因(手机屏幕上方显示k/s)

  • 手机拍照大光圈的功能是什么(手机拍照大光圈啥意思)

    手机拍照大光圈的功能是什么(手机拍照大光圈啥意思)

  • 屏蔽了qq好友会怎样(屏蔽qq好友会话对方知道吗)

    屏蔽了qq好友会怎样(屏蔽qq好友会话对方知道吗)

  • 苹果电脑有word文档吗(苹果电脑有我的电脑吗)

    苹果电脑有word文档吗(苹果电脑有我的电脑吗)

  • 华硕主板关机后usb不断电(华硕主板关机后usb还在供电)

    华硕主板关机后usb不断电(华硕主板关机后usb还在供电)

  • 如何把全民k歌里的歌保存到自己的手机里(如何把全民k歌转换成mp3格式)

    如何把全民k歌里的歌保存到自己的手机里(如何把全民k歌转换成mp3格式)

  • 3c放电是什么意思(3c放电与5c放电的区别)

    3c放电是什么意思(3c放电与5c放电的区别)

  • dc和ac代表什么意思(dc和ac代表什么电压)

    dc和ac代表什么意思(dc和ac代表什么电压)

  • 快手收货地址记录在哪修改(快手收货地址在哪)

    快手收货地址记录在哪修改(快手收货地址在哪)

  • 华为nova4语音助手叫什么(华为nova4语音助手别人叫怎么不回应)

    华为nova4语音助手叫什么(华为nova4语音助手别人叫怎么不回应)

  • 手机旋转屏幕怎么设置(手机旋转屏幕怎么设置苹果)

    手机旋转屏幕怎么设置(手机旋转屏幕怎么设置苹果)

  • vivo v1838a什么意思(vivo手机v1838a是什么型号)

    vivo v1838a什么意思(vivo手机v1838a是什么型号)

  • 费的锂电池可以回收吗(锂电池能直接扔掉吗)

    费的锂电池可以回收吗(锂电池能直接扔掉吗)

  • 如何修改网页wifi密码(如何修改网页分辨率)

    如何修改网页wifi密码(如何修改网页分辨率)

  • xsmax怎么打开无线充电(苹果xs max怎么打开无线充电功能)

    xsmax怎么打开无线充电(苹果xs max怎么打开无线充电功能)

  • vivo手机视频有杂音怎么办(Vivo手机视频有干扰杂音)

    vivo手机视频有杂音怎么办(Vivo手机视频有干扰杂音)

  • ipad能不能长截屏(ipad可以长截图嘛)

    ipad能不能长截屏(ipad可以长截图嘛)

  • 导航栏在哪里(相册底部导航栏在哪里)

    导航栏在哪里(相册底部导航栏在哪里)

  • oppoa9x处理器是什么(oppoa9x手机处理器是什么)

    oppoa9x处理器是什么(oppoa9x手机处理器是什么)

  • 怎样用小红书引流(怎样用小红书引流客户)

    怎样用小红书引流(怎样用小红书引流客户)

  • 如何禁用或隐藏Win11开始菜单中的推荐部(怎么隐藏权限)

    如何禁用或隐藏Win11开始菜单中的推荐部(怎么隐藏权限)

  • 固定资产待抵扣进项税
  • 消费税退回退税流程
  • 新企业会计准则2021
  • 接受捐赠手续
  • 2021年9月个税申报截止时间
  • 保险费计入什么会计科目需要发票吗
  • 非生产性费用不应计入产品成本
  • 非经营性资产包括哪些科目
  • 代扣代缴车船税手续费比例
  • 去年多计提了费用今年怎么办
  • 产品质量赔款的账务处理
  • 送现金券活动方案
  • 低值易耗品按三年摊销吗
  • 租的厂房再转租怎么开票抵扣
  • 办理营业执照需要钱吗
  • 纳税调整额怎么算出来的
  • 在职员工 开公司
  • 固定资产折现率怎么算
  • 安全生产费怎么算
  • 给外国教授发邮件最后一句
  • 为什么可供出售的金融资产是非流动资产
  • 外观设计专利费减
  • 开始菜单无法打开怎么办
  • 无法启动个人热点iphone
  • uniapp获取input的值
  • php创建表单
  • 交易性金融资产是什么意思
  • vueajax请求的五个步骤
  • 微信小程序插件有哪些
  • php time
  • 灰狼算法的改进
  • php制作留言板包含登录和功能实现
  • 网上报税有哪些
  • session和viewstate
  • vue优化方案
  • HTTP 错误 500.19- Internal Server Error 错误解决方法
  • css基础实验报告
  • 不开票销售收入怎么做账务处理
  • phpcms api
  • 个体户经营餐饮怎么申报
  • dedecms使用教程
  • phpcms使用教程
  • 没有收入该怎么办
  • sql server 2008 r2教程
  • 准则规定的内容是
  • 内部审计和外部审计可以相互接触对方的
  • 以前年度的费用发票怎么入账
  • 购买农产品普通发票怎么做账
  • 中小型企业应收账款风险管理
  • 员工体检费发票怎么入账
  • 住宿发票项目有哪些
  • 支付宝如何打印付款凭证
  • win7系统u口怎么禁用
  • ubuntu14.04升级18.04
  • mac打不开以下磁盘映像
  • linux修改密码认证令牌错误
  • macbook备份数据
  • macos10.8下载
  • win1021h2正式版
  • Linux查看文件的大小
  • linux中使用find命令查找文件
  • JavaScript的函数库
  • js继承的关键字
  • ExtJS4 表格的嵌套 rowExpander应用
  • python2与python3中的区别
  • 如何检查自己是否抑郁
  • android的edittext在哪
  • Python selenium爬取table
  • vue js 页面代码分离
  • android打开相机
  • jquery中的css方法
  • javascript怎么定义二维数组
  • 如何开具红字发票明细
  • 城管大队长级别高吗
  • 国家税务总局全国增值税发票查验平台
  • 江西国税电子税务局
  • 湖南省株洲市税务局
  • 电子税务局使用率低的原因
  • 税控盘抵税申报表怎么填
  • 个体如何申请税收优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设