react+typescript实践总结

简介: typescript语法参考 react参考1、给绑定在dom上的方法传参1.1定义getDetailByBookId = (id: string) => { console.

typescript语法参考
react参考

1、给绑定在dom上的方法传参

1.1定义

getDetailByBookId = (id: string) => {
  console.log(id)
}

1.2调用

<a data-id={book._id.$oid} 
onClick={this.getDetailByBookId.bind(this, book._id.$oid)}>
详情</a>

2、行内式css取值为变量的写法

style={{ display: `${this.state.custom_window_state}`,
 minWidth: `${this.state.minWidth_name}`}}

3、typescript语法编写react组件的代码基础结构

import * as React from 'react'
interface IState {
  test1?: string
  test2?: string
}
export interface IProps {
  empty?: any
 }
export default class CompontentName extends React.Component<IProps, IState> {
     // 这里初始化组件的全局变量
     map:any
     constructor(props: IProps, state: IState) {
          super(props)
          this.state = {
                 test1: '',
                 test2: ''
           }
      }
      render() {
           return (
              <div>
                   {dom or compontent}

              </div>
          )
     }
}

4、typescript中接口定义及使用

注意接口写在class外部,数据的使用在class内部

 // 定义IList接口 
interface IList {
  title: string
}

 // 使用IList接口
data: IList[] = [
    {
      title: 'Ant Design Title 1',
    },
    {
      title: 'Ant Design Title 2',
    },
    {
      title: 'Ant Design Title 3',
    },
    {
      title: 'Ant Design Title 4',
    }
  ]

5、react+typescript实现子组件调用父组件方法的效果

5.1组件结构

A组件里面引用了B组件,B组件里面引用了C组件
这里写图片描述

5.2实现步骤

如图C组件想要调用A组件中的方法-getBooks,首先C组件需要向外暴露接口

interface IProps {
  onComplete?: () => void
 }

并且在C组件需要的地方做该方法的调用

self.props.onComplete!()

此时B组件中
B组件对C组件的引用为:


<C onComplete={this.fatherComplete }/>

因为C组件想要调用的方法是在A组件中,所以B组件首先要实现C组件暴露的接口,同时向外继续暴露接口
B组件向外暴露接口

interface IProps {
  onComplete?: () => void
}

B组件实现C组件暴露的接口

fatherComplete = () => {
    this.props.onComplete!()
}

A组件中
A组件对B组件的引用为:

<B onComplete={this.addFormComplete} />

A组件继续实现B组件暴露给他的接口,此时C组件想要调用的getBooks方法就在该组件中就可以直接做this.getBooks的调用

addFormComplete = () => {
    this.getBooks()
 }

然后就可以实现C组件调用A组件中getBooks方法的效果

目录
相关文章
|
3月前
|
前端开发 JavaScript
深入理解并实践React Hooks —— useEffect与useState
深入理解并实践React Hooks —— useEffect与useState
172 1
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
246 2
|
2月前
|
JavaScript 前端开发 安全
TypeScript的优势与实践:提升JavaScript开发效率
【10月更文挑战第8天】TypeScript的优势与实践:提升JavaScript开发效率
|
1月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
2月前
|
JavaScript 前端开发 安全
使用 TypeScript 加强 React 组件的类型安全
【10月更文挑战第1天】使用 TypeScript 加强 React 组件的类型安全
41 3
|
4月前
|
开发者 自然语言处理 存储
语言不再是壁垒:掌握 JSF 国际化技巧,轻松构建多语言支持的 Web 应用
【8月更文挑战第31天】JavaServer Faces (JSF) 框架提供了强大的国际化 (I18N) 和本地化 (L10N) 支持,使开发者能轻松添加多语言功能。本文通过具体案例展示如何在 JSF 应用中实现多语言支持,包括创建项目、配置语言资源文件 (`messages_xx.properties`)、设置 `web.xml`、编写 Managed Bean (`LanguageBean`) 处理语言选择,以及使用 Facelets 页面 (`index.xhtml`) 显示多语言消息。通过这些步骤,你将学会如何配置 JSF 环境、编写语言资源文件,并实现动态语言切换。
47 1
|
3月前
|
前端开发 JavaScript UED
深入React Hooks与性能优化实践
深入React Hooks与性能优化实践
61 0
|
4月前
|
开发者 安全 UED
JSF事件监听器:解锁动态界面的秘密武器,你真的知道如何驾驭它吗?
【8月更文挑战第31天】在构建动态用户界面时,事件监听器是实现组件间通信和响应用户操作的关键机制。JavaServer Faces (JSF) 提供了完整的事件模型,通过自定义事件监听器扩展组件行为。本文详细介绍如何在 JSF 应用中创建和使用事件监听器,提升应用的交互性和响应能力。
45 0
|
4月前
|
开发者 Java
JSF EL 表达式:乘技术潮流之风,筑简洁开发之梦,触动开发者心弦的强大语言
【8月更文挑战第31天】JavaServer Faces (JSF) 的表达式语言 (EL) 是一种强大的工具,允许开发者在 JSF 页面和后台 bean 间进行简洁高效的数据绑定。本文介绍了 JSF EL 的基本概念及使用技巧,包括访问 bean 属性和方法、数据绑定、内置对象使用、条件判断和循环等,并分享了最佳实践建议,帮助提升开发效率和代码质量。
58 0
|
2月前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
64 0