快手前端二面

请将下面类组件函数转换成函数组件

import React, { Component } from 'react'

export default class MyButton extends Component {
    constructor(props) {
        super(props);
        this.state = {
            name: 'Bob',
        }
    }
    componentDidMount() {
        this.interval = setInterval(() => {
            console.log(111);
        }, 2000);
    }
    componentWillUnmount() {
        this.interval && clearInterval(this.interval);
    }
    clickMe() {
        this.interval && clearInterval(this.interval);
    }
    render() {
        return <button onClick={this.clickMe}>My name is {this.state.name}</button>
    }
}

在MyButton组件的父组件发生变化时,这个函数会重新执行吗?重新执行后interval的值还正确吗?

假设在2s内点击按钮触发clickMe函数,clearInterval会执行吗?

(不会,clickMe函数没有绑定this,会指向undefined)

如何让函数组件拥有相同的效果?

修改为函数组件后,在clickMe函数中调用setName('Jhon')会发生什么?框架内部做了什么?

为什么组件发生了重新渲染,拿到的值是Jhon,而不是被初始化为Blob?

对Webpack的了解?

url-loader为什么要将文件转换成DataUrl的格式?

算法题:三数之和(https://leetcode.cn/problems/3sum/

全部评论

相关推荐

点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客企业服务