您的当前位置:首页>全部文章>文章详情

【React】React中Typecript的使用

CrazyPanda发表于:2023-12-05 20:43:10浏览:690次TAG:

目录

一、创建React的TypeScript项目

二、使用差别

1、基本使用

2、Props传值的差别

3、State传参

三、总结



一、创建React的TypeScript项目

见:如何在React项目中引入TypeScript?_duansamve的博客-CSDN博客

二、使用差别

1、基本使用

其基本使用和javascript编写React项目时差不多

这是一份.tsx文件代码:可以看到和之前的.jsx使用并无太大差别

import React, { Component } from "react";
 
class Hello extends Component {
    render () {
        return (
            <div>
                <h1>Hello</h1>
            </div>
        );
    }
}
 
export default Hello;

2、Props传值的差别

import React, { Component } from "react";
 
interface IProps{
    name: string,
    age: number,
    work?:string
}
 
class Hello extends Component <IProps>{
 
    public constructor (props: any, context: any) {
        super(props, context);
    }
 
    public render () {
        const {name,age,work}=this.props
        return (
            <div>
                <h1>Hello:{name}</h1>
                <h2>{age}</h2>
                <h3>{work}</h3>
            </div>
        );
    }
}
 
export default Hello;

注意:使用.tsx时需要明确传入变量的类型,正确的写法应如上所示。any表示传入的可以是任何类型,TypeScript增加了类型限制和类的公开性关键字。TypeScript每次编译都会检查类型是否正确。

b5a77db0cdbd436188c23d52d8838748.png

3、State传参

 state默认是只读的,所以使用时可以有以下两种方式


import React, { Component } from "react";
 
//通过接口声明状态
interface IState {
    count: number
}
 
class Hello extends Component<any,IState> {
 
 
    // constructor (props: any, context: any) {
    //     super(props, context);
    //     this.state={
    //         count: 1000
    //     }
    // }
 
    // 实现state
    public readonly state: Readonly<IState> = {
        count: 1
    };
 
    clickHandler=()=>{
        this.setState({
            count: this.state.count + 1
        });
    };
 
    public render () {
        return (
            <div>
                <h1>Hello.count:{this.state.count}</h1>
                <button onClick={this.clickHandler}>click</button>
            </div>
        );
    }
}
 
export default Hello;

b5a77db0cdbd436188c23d52d8838748.png

三、总结

 TypeScript和Javascript的区别在于加入对类型的限制,有点类似于强类型的语言,实质是为了更好的管理维护代码。

猜你喜欢

【React】react面试题
React面试题文章目录React面试题一、react特性***React与Vue的区别*******1. Jsx的使用规范*******1.说说对 React 的理解?有哪些特性?DOM2.说说 Real DOM 和 Virtual DOM 的区别?优缺点?*******说说React中的虚拟dom?在虚拟dom计算的时候diff和key之间有什么关系*******3.说说React Jsx转换成真实DOM过程?4.说说你第mvc和mvvm的理解5.说说react中引入css的方式有哪几种?区
发表于:2023-12-05 浏览:1402 TAG:
【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(一)
目录一、关于ProTable二、使用步骤1.新建页面2.修改接口3.接口调用4.数据显示和检索1)不同类型内容显示2)列表检索3)列表内容样式设置5.其它1)render的简单使用2)图片点击预览3)翻页总结前言因为项目需要,确定了Ant Design Pro框架来开发后台管理端,刚接触这套框架,而且配套的资料真的很少,只能基于官方demo和网上不完整的学习经验一次次尝试,终于有个像样的结果,记录一下研究学习的成果,也给需要的同学一些帮助。本次学习研究基于Ant Design Pro V5版本,
发表于:2023-11-28 浏览:820 TAG: #前端 #antd #AntDesignPro
【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(二)
目录一、列表检索初始值设置二、字段缩略显示一、列表检索初始值设置使用initialValue属性,配置列表检索的初始值const&nbsp;columns:&nbsp;ProColumns&lt;API.RoomItem&gt;[]&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;&#39;名称&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;nb
发表于:2023-11-28 浏览:702 TAG:
【React】如何在 React 类中声明常量?
使用 react 开发应用程序时,有必要声明常量来存储在组件或应用程序的整个生命周期中保持不变的值。常量可以帮助提高代码可读性,提供管理共享值的中心位置,并增强可维护性。在本文中,我们将探讨如何在 react 类组件中声明常量。导入 React首先,我们假设您已经设置了 React 环境并且有一个可供使用的类组件。在声明常量之前,请确保您已导入必要的库。这包括导入 React,它是在 React 中构建用户界面的核心库。import&nbsp;React&nbsp;from&nbsp;&#39;
发表于:2024-04-16 浏览:298 TAG:
【React】使用React实现一个内容滑动组件
最近在做项目时遇到一个需求,需要让一个列表能够通过点击按钮进行滚动,每次都是一屏的距离,不足则结束。并且,这个列表项是在react-grid-layout中的某一个模块内。所以包裹这个列表的容器会随时发生变化。在完成这个组件后,通过这篇文章总结一下。UI/原型分析那么从上面的功能描述以及项目中的UI,我们可以分析得到这样一个假想图:我们需要实现一个容器来作为我们的可视区域,并且这个容器是可以伸缩的。列表内容如果超出容器的可视区域,那么就会被隐藏。需要左右都有按钮,来支持用户左右滑动内容来查看,每
发表于:2024-04-10 浏览:320 TAG:
【React】 react 绘制矩形
在React中绘制矩形,可以使用HTML5的&lt;canvas&gt;元素结合React组件的生命周期方法来实现。以下是一个简单的React组件示例,用于绘制矩形:import&nbsp;React,&nbsp;{&nbsp;Component&nbsp;}&nbsp;from&nbsp;&#39;react&#39;; &nbsp; class&nbsp;Rectangle&nbsp;extends&nbsp;Component&nbsp;{ &nbsp;&nbsp;componentDid
发表于:2024-04-01 浏览:306 TAG:
【React】react页面加载远程css和js
在React中,您可以使用componentDidMount生命周期方法来动态加载远程CSS和JavaScript文件。代码如下import&nbsp;React,&nbsp;{&nbsp;Component&nbsp;}&nbsp;from&nbsp;&#39;react&#39;; &nbsp; class&nbsp;DynamicResources&nbsp;extends&nbsp;Component&nbsp;{ &nbsp;&nbsp;componentDidMount()&amp;nbs
发表于:2024-05-15 浏览:268 TAG:
【AntDesignPro】Ant Design Pro学习记录—播放视频和音频
在ant design pro中,使用video和audio标签播放视频和音频1、播放视频我使用ModalForm弹框显示,autoPlay设置是否自动播放,controls设置操作按钮是否显示,设置好宽度和高度即可src是配置视频文件的链接&lt;ModalForm &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title=&quot;播放视频&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;n
发表于:2024-05-17 浏览:447 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(一)
目录前言一、ModalForm销毁二、ModalForm编辑赋值三、ProFormUploadButton赋值四、其它总结前言使用了AntDesignPro,仿照TableList创建了自己的列表,列表添加编辑确成了困扰,添加编辑使用了ModalForm,有两个问题,一个使用后,页面数据无法清除,再点弹框还是原来的数据,第二个编辑的时候,初始数据赋值问题。AntDesignPro版本V5,开发工具VsCode。一、ModalForm销毁参考ant design的关闭ModalForm和Modal
发表于:2023-11-28 浏览:631 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(二)
&nbsp;目录一、ModalForm高度设置二、ModalForm点击阴影背景,不隐藏弹框三、ProFormSelect联动四、ProFormText关联赋值一、ModalForm高度设置在modalProps中设置bodyStyle:{height:500,overflowY:&#39;scroll&#39;}编辑效果如下:编辑二、ModalForm点击阴影背景,不隐藏弹框同样在modalProps里面,配置maskClosable: false,就可以实现点击弹框外阴影,不隐藏弹框&lt;
发表于:2023-11-28 浏览:1183 TAG: