React+TS 从零开始教程(2):简中简 HelloWolrd

源码链接:https://pan.quark.cn/s/c6fbc31dcb02

这一节,我们来见识React+TS的威力,开始上手开发第一个组件,什么组件呢?

当然是简中简的 HelloWolrd组件啦。

在src下创建一个components,然后新建Hello.tsx

为什么是tsx呢,这个目的就是告诉编译器,我这个文件是支持jsx语法的,如果遇到你看不懂的标签,就当作React Element来处理。

这个组件,我们只有一个要求,就是输入一个属性叫做message,然后展示出来即可。

够简单吧,简直是简中简,弟中弟的组件哈。

但是,依然很有学习的价值。

代码如下:

javascript 复制代码
import React from "react";

const Hello = (props:any) => {
    return <h2>{props.message}</h2>
}

export default Hello;

然后,我们在App.tsx中引用这个组件。

效果:

改进1.不要any,改成接口

React大道至简的哲学,一个组件就是一个函数,再导出去就完事,没有什么花花肠子。

但是,我们这个组件过于简单了,any我们不推荐使用,所以改成接口来限制组件的传参。

javascript 复制代码
interface IProps {
    message : string
}

const Hello = (props:IProps) => {
    return <h2>{props.message}</h2>
}

这样一来,使用组件的地方就不能随便传参了。

看截图,不能传number了,必须string。

改进2.FunctionComponents

javascript 复制代码
interface IProps {
    message ?: string
}

const Hello : React.FunctionComponent <IProps> = (props) => {
    return <h2>{props.message}</h2>
}

//给属性设置默认值
Hello.defaultProps = {
    message: 'Hello world!'
}

export default Hello;

React.FunctionComponent 是一种自定义的类型,表示当前组件是函数组件,也可以简写成React.FC。
message通过?:变成可选的,并通过Hello.defaultProps给属性设置默认值。然后在调用的地方,就允许不传message了。

相关推荐
时间的情敌18 小时前
WebGIS + OpenLayers + GeoServer + PostGIS #量算 #点聚合
前端·geoserver·openlayers
不可能片场19 小时前
Electron 发布 cookie 库先查明文再写解密
前端·electron
郭小李19 小时前
springmvc 拦截器
java·开发语言·前端
web打印社区19 小时前
Chrome-kiosk-printing能上生产吗
开发语言·前端·javascript·chrome·websocket
白帽攻防录19 小时前
某pc客户端app从xss到rce实战案例
前端·网络安全·黑客·xss·rce·src漏洞·app漏洞
志尊宝19 小时前
AI原生前端开发(041):AI辅助的状态管理(Zustand/Pinia)
前端·javascript·ai-native
修炼的dance19 小时前
pngquant 两档质量后接 oxipng,每步省多少花几秒
前端
费曼学习法19 小时前
无人值守AI内容矩阵实战(10):Windows 无 systemd,进程存活率 99% 怎么做
前端
小兔子19 小时前
Integer 的 == 在 100 时是 true,在 1000 时是 false
前端
尘世中一位迷途小书童19 小时前
和 AI 打交道会撞见的一整串词:从大模型到 Agent、RAG、MCP、Skill,一次串清
前端·人工智能