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了。

相关推荐
花海如潮淹4 分钟前
前端性能追踪工具:用户体验的毫秒战争
前端·笔记·ux
_丿丨丨_5 小时前
XSS(跨站脚本攻击)
前端·网络·xss
天天进步20155 小时前
前端安全指南:防御XSS与CSRF攻击
前端·安全·xss
拾光拾趣录7 小时前
括号生成算法
前端·算法
拾光拾趣录8 小时前
requestIdleCallback:让你的网页如丝般顺滑
前端·性能优化
前端 贾公子8 小时前
vue-cli 模式下安装 uni-ui
前端·javascript·windows
拾光拾趣录9 小时前
链表合并:双指针与递归
前端·javascript·算法
@大迁世界9 小时前
前端:优秀架构的坟墓
前端·架构
期待のcode9 小时前
图片上传实现
java·前端·javascript·数据库·servlet·交互
hbrown10 小时前
Flask+LayUI开发手记(十一):选项集合的数据库扩展类
前端·数据库·python·layui