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

相关推荐
懒大王爱吃狼28 分钟前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
小牛itbull1 小时前
ReactPress:重塑内容管理的未来
react.js·github·reactpress
逐·風4 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
Devil枫5 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
尚梦6 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
GIS程序媛—椰子6 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
前端青山6 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
毕业设计制作和分享7 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
清灵xmf9 小时前
在 Vue 中实现与优化轮询技术
前端·javascript·vue·轮询
大佩梨9 小时前
VUE+Vite之环境文件配置及使用环境变量
前端