react学习总结

2023-11-15

目录

 

1 react生命周期

2 关于组件 className 设置的问题

3 react 中实现一些动画的效果

4 encodeURIComponent() 

5 react项目开发步骤推荐

6 webpack 的特色与功能


1 react生命周期

react 组件的生命周期整个过程如下:

2 关于组件 className 设置的问题

对于自定义的组件,如果在组件引入的地方设置 className ,就操作不了内部的元素的样式。这种情况只能在组件定义的方法设置 className,这样才能操作内部的样式的样式。

如下不能操控 内部 ul 和 div 的样式

//子组件
import React, { Component } from 'react';

class Son extends Component {
	render() {
		return (
			<div>
				<ul>
					<li></li>
					<li></li>
					<li></li>
					<li></li>
				</ul>
				<div></div>
			</div>
		);
	}
}
export default Son;

//父组件
import React, { Component } from 'react';
import Son from "./son";

class Parent extends Component {
	render() {
		return (
			<div>
				<Son className = "son"></Son>
			</div>
		);
	}
}
export default Parent;

而将 className 设置在子组件中,这样才能操控 内部元素的样式

//子组件
import React, { Component } from 'react';

class Son extends Component {
	render() {
		return (
			<div className="son">
				<ul>
					<li></li>
					<li></li>
					<li></li>
					<li></li>
				</ul>
				<div></div>
			</div>
		);
	}
}
export default Son;

//父组件
import React, { Component } from 'react';
import Son from "./son";

class Parent extends Component {
	render() {
		return (
			<div>
				<Son></Son>
			</div>
		);
	}
}
export default Parent;

3 react 中实现一些动画的效果

项目中遇到了一些要实现简单的动态过渡效果,但是又找不多合适的 UI 组件,所以就自己按照一些帖子的方法做了。

https://www.jb51.net/article/94932.htm

我用到手风琴效果的 关键点:

  • 元素样式的 transition : height 1s;
  • 组件下使用不同的类名来进行元素的样式切换。
<div className={"content "+(this.props.active ? "full" : "")}> </div>

我用的组件是 antd 提供的,样式使用 css modules 实现的,应该是

<div className={ [styles["content"], (this.props.active ? "full" : "")].join(" ") }> </div>

4 encodeURIComponent() 

可以把字符串 作为 URI 组件进行编码。

为什么要这么做:防止key或者value 中存在歧义,如某个 value 值是 sqrt=1。

encodeURI 与 encodeURIComponent 的区别?

5 react项目开发步骤推荐

有了项目的梗概,我们要做的第一件事情不是写代码,而是画一个简单的原型图,将不同的功能可视化的展示出来。

  1. 先画出项目的 Mokeup 
  2. 将 Mokeup 图划分为不同的组件
  3. 实现静态版本的程序和组件
  4. 将静态版本的组件组合起来
  5. 考虑 state 的组成
  6. 交互组件的设计。包含内容CRUD(增删查改);状态切换的实现
  7. 最终版本

其中对于项目的目录结构,推荐如下

转自:歌特式灵魂摆渡人 的https://www.jianshu.com/p/eb7d518b05b8

自己想法:每个路由的界面可以做一个容器。

6 webpack 的特色与功能

特点:

  • 按需异步加载,极大地提升大规模页面应用的初始加载速度
  • 智能的静态分析。既不是加载与执行时同步的(在网络请求的事件不可忽视情况下,请求时会阻塞JavaScript的执行),也支持简单的不含变量的表达式。
  • 模块热替换功能。

功能:

  • loader 是作用于应用中资源文件的转换行为。是函数,接受资源文件的源码作为参数,并返回新的代码。
  • plugin (插件)是另外一种扩展 webpack 能力的方式,与loader 专注于资源内容的转换不同,plugin 的功能范围更广,也更为灵活强大。plugin 可以看做是为了实现哪些loader实现不了或者不适合在loader 中实现的功能。

 

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

react学习总结 的相关文章

随机推荐

  • 2020李宏毅机器学习课程作业——Homework1:Linear Regression

    一 作业获取途径 课程网址 http speech ee ntu edu tw tlkagk courses ML20 html B站视频地址 https www bilibili com video BV1JE411g7XF from s
  • slf4j简介说明

    转自 slf4j简介说明 下文讲述slf4j的简介说明 如下所示 SLF4J简介 SLF4J是用于日志记录系统的简单外观 允许最终用户在部署时插入所需的日志记录系统 Simple Logging Facade for Java SLF4J
  • 四、Arthas

    四 Arthas 1 安装 卸载 1 Arthas支持在Linux Unix Mac等平台上一键安装 请复制以下内容 并粘贴到命令行中 敲回车执行即可 curl L https arthas aliyun com install sh sh
  • 深度解析Vue Router原理:实战指南与实用技巧

    大家好 欢迎来到程序视点 今天跟大家简单聊聊Router的实现原理 以及我们如何去实现这样一个插件 Vue Router 是Vue js官方的路由管理器 它和 Vue js 的核心深度集成 让构建单页面应用变得易如反掌 关于Vue Rout
  • 【计算机视觉

    文章目录 一 检测相关 10篇 1 1 Self Training and Multi Task Learning for Limited Data Evaluation Study on Object Detection 1 2 OTAS
  • Exception in thread "main" java.io.FileNotFoundException: xxx.xxx (系统找不到指定的路径。) Java错误

    该情况为读取文件路径错误 src里的代码 在我们的直观感觉可以用相对路径 xxx 然而有时候行 有时候不行 作者确实都经历过 因此要加上以src为起始的路径 例如代码在src P1里 读取的文件在src P1 a里 写 a xxx要碰运气
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记【01-课程简介】

    北大肖臻老师 区块链技术与应用 点击这里 全系列文章链接 点击这里 该系列文章中如有任何侵权内容请及时与我个人联系删除或修改 一 区块链的本质是什么 有人说区块链是下一代的价值互联网 也有人说它是世界上最慢的数据库 区块链出生以来就饱受争议
  • docker从入门到实战

    Docker Docker 基础 Docker 容器与镜像的概念 容器 Container 容器是一种可执行的虚拟化环境 它包含了应用程序以及运行此应用程序所需的所有依赖项 包括软件 库 配置等 容器只存在于主机操作系统的内存中 不占用独立
  • vue中函数回调传值

    在业务开发中 有时候会碰到一种情况 组件内部会触发一些事件用来请求新的数据 数据请求到后将新的数据继续在组件内进行处理 这个场景我们有三种方式可以实现它 将数据请求写在组件内部 缺点不好维护 违反了单项数据流的原则 通常我们可以通过this
  • js验证邮箱的正则表达式

    最近小小研究了一下正则表达式 觉得写正则表达式还挺有意思的 先想推荐一个网址 把正则表达式的基本语法都总结了 很不错 https msdn microsoft com zh cn library ae5bf541 v vs 100 aspx
  • SiliconLab GSDK 4.2.2 创建 Z3Gateway 工程

    如题 在SSv5的My Product选项下 需要添加Linux 32 Bit 否则在Example Projects Demos中无法查找到zigbeegateway相关的demo My Product 中的内容添加成功后 再次搜索Exa
  • 剑指 Offer 29. 顺时针打印矩阵(java+python)

    输入一个矩阵 按照从外向里以顺时针的顺序依次打印出每一个数字 示例 1 输入 matrix 1 2 3 4 5 6 7 8 9 输出 1 2 3 6 9 8 7 4 5 示例 2 输入 matrix 1 2 3 4 5 6 7 8 9 10
  • Anchor Base 和 Anchor Free

    1 概念 1 1 什么是Anchor Anchor也叫做锚 其实是一组预设的边界框用于在训练时学习真实的边框位置相对于预设边框的偏移 通俗点说就是预先设置目标可能存在的大概位置 然后再在这些预设边框的基础上进行精细化的调整 而它的本质就是为
  • npm run build 打包后,如何查看效果

    我们用vue cli搭建的项目执行npm build后本地打开页面空白 如果才能查看npm run build之后的结果呢 首先我们看一下提示 Tip built files are meant to be served over an H
  • 手机第一次怎么充电?

    来说说电池保养问题 现在手机用的大概是600 1800毫安时左右的锂电池 而锂电池是没有记忆的 可以随时随地充电 电池和耳机一样有一个煲的过程 刚买回来的时候电池的功效不会发挥到最大 刚买回来用的前两次一定要把电量用完再充 这点很重要 大概
  • LayUI系列(三)之动态添加选项卡

    文章目录 前言 一 什么是Tab选项卡 二 动态选项卡 1 通过网站查找layui选项卡的页面布局代码 2 动态添加选项卡 3 将选项卡的名称换成选中的菜单名称 4 已打开的选项卡不再重复打开 5 选择已被打开的选项卡则进行选项卡的转换 三
  • JS中的prototype

    JS中的prototype JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点 1 原型法设计模式 在 Net中可以使用clone 来实现原型法 原型法的主要思想是 现在有1个类A 我想要创建一个类B 这个类是以
  • AB实验核心知识点总结

    一 AB实验的价值以及应用场景 AB实验目前已经是互联网以及泛互联网行业的标配 像字节这样的互联网大厂 元气森林这样的饮料公司都把AB实验作为产品功能迭代的重要的工具 它之所以如此重要是因为其能给出定性因果和定量增长两种核心价值 让产品快速
  • Pycharm在Debug时,Tensor张量显示不全问题

    问题 在Debug时 当我们需要对某个张量查看它里面各个数值 只显示开头和结尾的部分数据 出现张量显示不全 解决方法 对要查看到数据按下鼠标右键 选择 评估表达式 的选项 对要查看的数据 先转换到cpu上 再转换到numpy 最后 点击 评
  • react学习总结

    目录 1 react生命周期 2 关于组件 className 设置的问题 3 react 中实现一些动画的效果 4 encodeURIComponent 5 react项目开发步骤推荐 6 webpack 的特色与功能 1 react生命