快手前端二面

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

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/

全部评论

相关推荐

28小凳也想实习:项目不用一个业务一个轮子吗,刷牛客好多人说要一业务一轮子
点赞 评论 收藏
分享
01-24 12:50
门头沟学院 C++
投票
菜狗二号:还有啥想的 指定国有行啊,去了就开始幸福美满的生活了,选华子不是折腾自己么,最终财富积累度是差不多的,但是幸福指数是相差甚远的
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客企业服务