react-从0到1新建react项目

2023-11-12

目录

1. 脚手架创建项目

2.分析目录

3.动态写入值

​编辑

4.引入组件

​编辑

 5.组件传值

6.控制组件传值的类型,类型校验

7.组件插槽

8.函数组件和类组件

9.添加事件

10.引入state ,在页面上响应式改变值

​编辑

11.子组件像父组件传值

12.组件间互相传值

13.数据双向绑定

 


学习方式:

1.阅读官方文档

2.跟着下面开始敲代码

基础部分

1. 脚手架创建项目

1.node -v

2.npm install -g create-react-app 安装脚手架

3.create-react-app my-react

4.cd my-react

5.npm start

运行成功

2.分析目录

1.package.json

2.index.js 入口文件 

3.app.js 组件引入,写页面的地方

3.动态写入值

结果:

4.引入组件

1.创建cmponents,里面放需要的组件,同样用函数式组件

2.app.js中引入

非常简单,import引入,<Home/>调用即可

 5.组件传值

app.js父组件

子组件:

6.控制组件传值的类型,类型校验

 

 

结果:

7.组件插槽

效果展示:

8.函数组件和类组件

上面都是通过函数式组件来写的,那我们怎么把它变成类组件呢?

首先看一下他们两者的区别:

1.函数组件是一个纯函数,它接收一个props对象返回一个react元素;而类组件需要去继承React.Component并且创建render函数返回react元素。

2、函数组件没有生命周期和状态state,而类组件有。

为了扩展我们这个Home组件,我们现在把home组件变成类组件

写法改变: 「原来」

 「现在」:

将props变成this.props

9.添加事件

1.为我们当前添加一个按钮, 现在用的是class所以我们使用面向对象,来做一个操作年龄➕的一个事件方法

结果:

10.引入state ,在页面上响应式改变值

「结果」:

11.子组件像父组件传值

举例子:将子组件的age传递给父组件

子组件:

 父组件: 

 

结果:

12.组件间互相传值

比如 header 中的值是 兄弟组件中的 定义的

思路: header中的值是父组件传过去的 

兄弟组件home把值传给父组件,父组件接收,再传给子组件header

子组件:header.js

 兄弟组件:home.js

 父组件app.js:

结果:

 

13.数据双向绑定

input 框输入内容之后,外面的值也会相应改变

子组件:

 父组件: 

 结果:

进阶部分

14.hooks

react-hooks hooks称为钩子,钩子函数是一种编程的思想,我们称之为 面向切面编程

(AOP)

1.面向过程编程(一个函数的调用)

2.面向对象编程(以对象为基础(抽象,封装,继承,多态))

3.AOP 面向切面编程(vue.js react ,提供一种生命周期,这些函数就称之为钩子函数,钩子函数的作用就是为了扩充产品的能力,vue暴露钩子函数开放接口给用户,用户可以使用,然后去特定的执行)

4.面向接口编程(api编程),前后端分离的这种形式就是面向接口编程

5.函数式编程(数学的要求很高,要在前端走的很长远,其实是缺少不了的)

那么什么是react的hook呢?

在react中组件分为2大类,1个是函数式组件2.类组件(state,setState)

最大区别:类组件存在自己的状态,函数组件无状态

大家发现函数式组件写起来比较简洁,那么大家希望使用函数式组件编写出类组件

那么可以用函数式组件替代类组件吗?

可以 就使用hook 

1.改变状态

2.实现生命周期

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react-从0到1新建react项目 的相关文章

  • 如何使用标准 JavaScript 在 CSS 转换结束后立即重新启动它?

    我构建了一种密码生成器 只要倒计时到期 它就会显示新密码 不幸的是 我只设法弄清楚如何运行我的代码一次 倒计时由一个简单的 CSS 过渡组成 我想保留它 因为它比我的其他尝试平滑得多 其中我尝试使用 JavaScript 重复更新宽度 va
  • 如何从 javascript 错误对象读取错误消息

    有人可以帮我解决以下问题吗 我正在通过 redux 操作进行后调用 如下所示 export const addEmployee firstName surname contactNumber email gt async dispatch
  • JS文件中的System.register是什么意思?

    在 Angular 2 中使用指令时 JS 文件中的 System register 是什么意思 我认为这个问题并不特定于 Angular2 中的指令 它是关于 ES6 TypeScript 和其他使用 SystemJS 的现代编译器的一般
  • JavaScript 可以检测用户的浏览器是否支持 gzip 吗?

    我可以使用 JavaScript 来检测用户的浏览器是否支持 gzip 压缩内容 客户端 而不是 Node js 或类似内容 我正在尝试支持以下边缘情况 有很多可能的文件可以加载到特定的 Web 应用程序上 最好在应用程序运行时根据需要加载
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • jslint 配置 |传递全局变量

    我如何提醒 jshint 我有全局变量 即命名它们 我知道你可以做到这一点 但我不记得语法了 我在这里定义了一个全局的 function window glob1 local var 稍后像这样使用 不同的 IIFE function gl
  • vuejs 模板和 asp.net 部分视图,好的做法吗?

    我在网站中使用 Vue js 并将模板添加到 html 代码中 并将 js 代码添加到单个 js 文件中 所以我不想使用 vue Vuefy Browserfy 方法 而是稍后捆绑并缩小我的 js 文件 由于我必须使用 Asp Net MV
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • 使用 JavaScript 防止网页导航离开

    如何使用 JavaScript 防止网页导航离开 Using onunload允许您显示消息 但不会中断导航 因为为时已晚 然而 使用onbeforeunload将中断导航 window onbeforeunload function re
  • Javascript location.href 到 mailto 触发 GET HTTP,该 HTTP 在 Chrome 中被取消

    我有一个按钮可以触发以下 javascript 函数 function sendEmail var mail mailto email protected cdn cgi l email protection location href m
  • 在 Chrome 开发者工具中禁用调试器语句

    我正在尝试对恶意 JavaScript 进行逆向工程 当我最初加载侧面时 会注入 JS 代码 其中包括 debugger 语句并将断点注入我的 chrome 开发人员控制台 通过stackoverflow阅读 禁用所有断点does not帮
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • Javascript等待/异步执行顺序

    所以我试图把我的头脑集中在 Promise await async 上 我不明白为什么当 go 执行时 带有 finished 的警报会紧随 console log coffee 之后 当所有函数都使用等待 承诺时 为什么它只等待 getC
  • 如何使用 fetch() 和 WhatWG 流获取文件上传进度

    注意 我并不是在寻找任何替代方案 我知道这可以通过 XMLHttpRequest 来完成 我也不关心浏览器支持 我只想了解新的 即将推出的标准 我有一个File https developer mozilla org en US docs
  • Html5画布最热门的任意形状

    我正在尝试开发可以在画布中渲染图像和文本的程序 我尝试处理画布中图像的点击 但它适用于可矩形图像 我的问题 您是否知道处理单击画布中图像的可见部分 非透明部分 的解决方案或框架 我正在寻找 ActionScript hitTestObjec
  • Safari 扩展将消息发送到特定选项卡

    有没有办法从全局页面发送消息到特定选项卡 我目前正在做的是 在创建选项卡时 注入的脚本会创建一个唯一的 ID 并将包含该编号的消息发送到全局页面 并且全局页面会保存该编号 如果全局页面需要发送一些数据到一个tab 即 tab 3 然后全局页

随机推荐

  • 模型评估(误差平方和(SSE The sum of squares due to error))

    1 误差平方和 SSE The sum of squares due to error 举例 下图中数据 0 2 0 4 0 8 1 3 0 7 均为真实值和预测值的差 在k means中的应用 公式各部分内容 上图中 k 2 SSE图最终
  • 关于phpstorm创建新文件和引用的问题

    今天在做一个小demo遇到一个问题 用的是phpstorm 我打算通过后台来访问到json文本文档的数据 但是屡次遇到后台报错 以下是我创建文件的流程和控制台报错的结果 第一步 创建新json数据文件名 第二步 选择要创建的文件类型 此处我
  • 【SQL Server】入门教程-基础篇(完结)

    目录 Sql Server中的触发器使用 触发器概念 触发器语法 触发器练习 Sql Server中存储过程的使用 存储过程概念 存储过程语法 存储过程练习 写在最后 Sql Server中的触发器使用 触发器概念 触发器 trigger
  • Gidon——基于Avalonia的MVVM插件IoC容器

    目录 介绍 用于Avalonia的Gidon IoC MVVM框架 模型 视图 视图模型 MVVM 模式的复习 什么是MVVM 用于MVVM的Avalonia工具 控制反转 IoC 容器 无MVVM 的复习 为什么要同时使用IoC和MVVM
  • 微信小程序 时间处理 bug

    问题 在我的项目中需要处理一个这样的时间 new Date 2020 01 02 10 30 00 在 开发者工具 和 debug 模式下没有问题 但是 在预览模式有问题 经过 尝试 确认了 时间 问题 解决方案 微信 接收类似于 这样的时
  • 智能家居Homekit系列一智能通断开关

    智能通断器 也叫开关模块 可以非常方便地接入家中原有开关 插座 灯具 电器的线路中 通过手机App或者语音即可控制电路通断 轻松实现原有家居设备的智能化改造 随着智能家居概念的普及 越来越多的人想将自己的家改造成智能家庭 但智能电器价格普遍
  • 2023年9月4日-9月10日(上午熟悉公司代码,周一到周五晚上优先工作所急视频教程,其他业余时间进行ue视频教程,为独立游戏做准备,本周15小时,合计2299小时,剩余7701小时)

    按照规划 上午熟悉公司源码 下午进行filament和ue渲染 晚上写工作代码 回家后泛读pbrt或者其他书籍催眠 业余学习ue的各种视频教程 为独立游戏做准备 公司也实行末位淘汰 给自己留条后路 累了就学其他视频教程 随意 可以按照ue
  • 55寸OLED拼接屏的优势是什么?应用在哪些领域?

    OLED拼接屏55寸是一种高端的显示设备 它采用了OLED技术 具有高亮度 高对比度 高色彩饱和度等优点 能够呈现出更加真实 清晰 细腻的图像效果 同时 它还支持多屏拼接 可以将多个屏幕拼接在一起 形成一个更大的显示屏幕 适用于大型展示 广
  • 2012系统里的网页服务器,2012r2云服务器创建网页

    2012r2云服务器创建网页 内容精选 换一换 设置 网络 在下拉列表中选择可用的虚拟私有云 子网 并设置私有IP地址的分配方式 弹性云服务器网络使用虚拟私有云 VPC 提供的网络 包括子网 安全组等 您可以选择使用已有的虚拟私有云网络 或
  • 个人信息管理系统_2020年继续教育个人学时登记以及单位学时登记、审核操作指南来咯...

    近日 自治区人力资源社会保障厅印发 关于做好2020年度全区专业技术人员继续教育工作的通知 桂人社函 2020 157号 规定专业技术人员应于2020年11月30日前完成公需科目必修课学习考试和专业科目学习登记 专业技术人员所在单位应于20
  • 统计数字出现的次数

    在论坛上看到这么一个题 JAVA题 要求任意输入20个10以内的整数 并判断输出每个数字的出现次数并输出 这个题也可以转化为 长度为n n lt 1000 的整数 输出每个数字出现的次数 上面两个题意思相同 每个数字范围只有 0 9 所以我
  • CVPR2022 多目标跟踪(MOT)汇总-补充篇

    为该文章的后续补充https blog csdn net qq 34919792 article details 124343166 七 Multi Object Tracking Meets Moving UAV 作者 Shuai Liu
  • openwrt开启dnsmasq-full替换默认dnsmasq

    因为要用到dnsmasq的ipset功能 所以需要安装dnsmasq full 方法如下 1 进入openwrt目录 配置 make meconfig 在base system里面 2 取消原来的dnsmasq 选中dnsmasq full
  • 【STM32】详解RTC实时时钟的概念和配置&示例代码

    一 什么是RTC RTC Real time Clock 实时时钟 本质上是一个支持BCD编码的定时器 计数器 主电源断电后能够由电池供电 使其时钟跳转依然正常 二 STM32F4芯片内的RTC功能 日历时钟 时分秒 年月日 星期 两个闹钟
  • NBS-Predict:基于脑网络的机器学习预测

    文章来源于微信公众号 茗创科技 欢迎有兴趣的朋友搜索关注 导读 大脑的图模型作为研究跨尺度和跨物种的大脑功能和结构连接的框架具有巨大的潜力 基于网络的统计 NBS 是对大脑图进行统计推断的著名工具 它将基于团簇水平的置换检验和连通分量的图论
  • ST-LINK/V2驱动下载与安装

    1 下载 ST LINKV2仿真器 正点原子资料下载中心 1 0 0 文档 openedv com 点击上面链接到正点原子就可以下载 如下图所示 2 安装 1 将ST LINK连接到电脑 在设备管理器中可以看到是没有通用串行设备 说明电脑没
  • Arthas使用方法

    1 简介 Arthas 是Alibaba开源的Java诊断工具 安装在系统所在服务器 可以帮助开发人员或者运维人员查找问题 分析性能 bug追踪 下载路径 https arthas aliyun com arthas boot jar 2
  • 功能视图的组成

    功能视图是构建联邦学习系统所需功能的技术中立的视图 功能视图描述了支持联邦学习活动所必需功能的分布 定义了功能之间的依赖关系 功能视图涵盖的联邦学习内容如图 包括 功能组件 功能层 跨层功能 功能组件是参与某一活动所需的 能实现的功能构件
  • 与OpenAI的30 天

    30 天 我计划在 GitHub 上测试开源 Ai 项目 并学习如何自己构建一个项目 这些帖子会很短 重点是了解您可以使用 Ai 创造什么以及需要准备什么 图像是使用midjourney生成的 我一直在收集由像你我这样的开发人员创建的 30
  • react-从0到1新建react项目

    目录 1 脚手架创建项目 2 分析目录 3 动态写入值 编辑 4 引入组件 编辑 5 组件传值 6 控制组件传值的类型 类型校验 7 组件插槽 8 函数组件和类组件 9 添加事件 10 引入state 在页面上响应式改变值 编辑 11 子组