react函数式组件+ts+ref

本文介绍如何在React中使用ref来操作DOM元素,通过实例展示了创建ref、访问ref以及在componentDidMount中的应用。重点在于讲解ref在前端开发中的实际应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import React from 'react'

class App extends React.Component {
  private readonly myRef: React.RefObject<HTMLDivElement>
  constructor (props: any) {
    super(props)
    this.myRef = React.createRef() // 1.创建一个ref的引用,并且可以通过this.myRef属性去进行访问
    this.state = {

    }
  }

  componentDidMount () {
    // 可以通过this.getRef.current  属性名来进行获取
    console.log(this)
  }

  render () {
    return (
      <div ref={this.myRef}>
        <h1>234234324</h1>
      </div>
    )
  }
}

export default App

以下是一个基于 React 和 ECharts函数式组件,用 TypeScript 实现的乌兰察布地图显示: ```tsx import React, { useRef, useEffect } from 'react'; import * as echarts from 'echarts'; interface IMapData { name: string; value: number; } interface IMapProps { mapData: IMapData[]; } const UlanqabMap: React.FC<IMapProps> = ({ mapData }) => { const chartRef = useRef<HTMLDivElement>(null); useEffect(() => { if (chartRef.current) { const chart = echarts.init(chartRef.current); chart.setOption({ tooltip: { trigger: 'item', formatter: '{b}<br/>{c} (人)', }, visualMap: { type: 'piecewise', pieces: [ { min: 100000, label: '>=100000', color: '#7f1100' }, { min: 50000, max: 99999, label: '50000-99999', color: '#ff5428' }, { min: 10000, max: 49999, label: '10000-49999', color: '#ff8c71' }, { min: 1000, max: 9999, label: '1000-9999', color: '#ffd768' }, { max: 999, label: '0-999', color: '#ffffff' }, ], calculable: true, inverse: true, left: 'left', top: 'bottom', }, series: [ { name: '乌兰察布市', type: 'map', mapType: '乌兰察布市', label: { show: true, }, data: mapData, }, ], }); } }, [mapData]); return <div ref={chartRef} style={{ height: '500px' }} />; }; export default UlanqabMap; ``` 在组件中,通过 `IMapData` 和 `IMapProps` 来定义地图数据和组件属性类型。`chartRef` 用于获取组件中的 DOM 元素,`useEffect` 钩子函数用于初始化 ECharts 实例,并设置地图的样式和数据。最后,通过返回一个包含 `chartRef` 的 `div` 元素,将地图显示在页面上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值