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

相关推荐
程序员白彬2 分钟前
为什么 npm run serve 正常,npm run build 就报错:digital envelope routines::unsupported
前端·npm·node.js
weixin_8368695205 分钟前
使用Random.next生成随机数
java·前端·python
小和尚敲木头17 分钟前
css 滚动词云
前端·css
xuchengxi-java34 分钟前
Vue3使用Vue Router4實現頁面切換
前端·javascript·vue.js
前端组件开发39 分钟前
基于Vue.js的电商前端模板:Vue-Dashboard-Template的设计与实现
前端·javascript·vue.js·小程序·前端框架·uni-app·html5
Amore052543 分钟前
谈谈在专栏【React+TS前台项目实战】项目中用到的Typescript定义方式
react.js·typescript
五点六六六1 小时前
深入解析Cookie机制:从操作实践到安全属性详解
前端·javascript·面试
知道了啊2 小时前
webpack源码深入--- webpack的编译主流程
前端·webpack
学习做游戏中2 小时前
layui在表格中嵌入上传按钮,并修改上传进度条
前端·javascript·layui
ZhouWei的博客2 小时前
Flutter Android打包aab包
android·前端