狗屎一样的React(第三节,创建app顶部标题栏)

本文主要是介绍狗屎一样的React(第三节,创建app顶部标题栏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一节,我们将创建APP顶部通用的标题栏。这个东西项目中也很常用的,什么?你想不到什么是顶部通用标题栏,我给你找几个图片:

就是这个东西。react所有的我们所看到的每一块东西,我们都应该以模块的思路来做。

1、css内容以后我们将不再给大家截图怎么写,因为都学到react了,我就觉得你css怎么也使用了至少有一两年了吧,哪怕是半年,写个background,color ,font-size应该也没问题了吧。所以,你后续就在我们上一节的demo.css去写,这里不再多说了;

2、html内容仍然不动,甚至后续index.html几乎也不会有太多的改动,因为我们以后将更多的使用import来在js文件中引入js以及css,慢慢的你就理解了React的模块思路了;

3、来到上一节的inde.js这个入口js文件,我已经把代码写好了,如图:

采用react工厂方法,创建一个AppTop组件,注意,首字母要大写而且必须大写,然后还是上一节的ReactDOM的render渲染方法,这次我们把刚才创建的AppTop组件引入过来。这样打开浏览器,看一眼我们的小效果:

 

其实创建组件还有其他的写法,比如:

再或者这么写:

写法不同,但异曲同工,就看你怎么写着更顺手,就像拍黄瓜一样,我们可以给黄瓜套个塑料袋,用板砖拍,也可以直接用菜刀拍,也可以用拳头砸,也可以擦丝吃,更可以稍微切几刀蘸酱吃,结果都是把黄瓜吃掉,哈哈。

4、但这个顶部是多个页面都需要用的,除了首页外,比如登录页,比如列表页,比如详情页,再比如个人中心页,再个人中心的子页面,而且我们有过项目经验的都知道,这个公用顶部样式相同,显示文字却不相同。所以,我们还需要把这个顶部模块单独出来,添加传值显示文字

5、在src文件夹下的js文件夹下,创建top.js,这个就做为我们公共顶部的模块js文件,如图:

首先这个js模块引入了刚才的demo.css,然后创建AppTop没什么可说的了,多照着写几遍,然后的export是es6的使用,是要把我们创建的AppTop这个小模块给返回出去,供外面的模块引入使用。意思就是隔壁二大娘来家里借菜刀,然后她就import,你要是想借就提供一个export,说给你。没问题吧

6、然后是index.js这个入口js文件,怎么来使用我们单独创建的这个AppTop模块呢,如图:

在这里,我们通过import引入刚才的AppTop模块,其实跟原来的<script src="top.js">差不多,但React就是要这么写,就是为了凸显自己很牛掰,怎么样,是不是很狗屎,这突然让我想到一个郭德纲的经典段子:俩人出去旅游迷路了,迷茫之中听到的坏消息是这个地方啥也没有,只能靠吃牛粪过日子,好消息却是牛粪有的是。哎,你说为什么就不能吃牛肉呢?我们继续,然后引入了AppTop,继续render渲染,到id是root的div上。看一眼浏览器,这样就是一个公用的组件了。

7、但每个页面要显示的内容不同啊,何解?我们继续。我们将首页继续改造一下,如图:

我们又新创建了一个组件SiteIndex,这里面装上之前的AppTop,然后来render渲染SiteIndex,因为首页每个页面不单单只是会又顶部,还会有其他内容,后续首页我们就可以把其他组件继续装入SiteIndex中了。

8、再看看传入的 word="首页",这个就相当于我们之前给方法传值,这里传入“首页”,然后top.js中,

采用this.props.word就可以拿到传值数据了,这样达到了就像以前我们传值显示一样的效果。

这一节稍微有点长,不过没关系,我尽量多截图,多打字,希望小伙伴们可以更轻松的去理解,实在是不理解的多敲几遍,多看几遍。下一节,我们将做一个首页banner图轮播的组件,而且几乎每个APP应用首页都会有banner图轮播,喜欢的小伙伴请关注下一节: 狗屎一样的React(第四节,首页banner图轮播)

这篇关于狗屎一样的React(第三节,创建app顶部标题栏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750292

相关文章

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex