通过这个点赞的按钮能反映出什么问题呢,在我们看到一个想要看到的功能时,我们需要复制html文件和js文件,而通过react的render可以返回dom节点,我们可以将这个功能在一个函数中进行实现,而且复用性会很高

<body>
    <div class='wrapper'>
      <button class='like-btn'>
        <span class='like-text'>点赞</span>
        <span>👍</span>
      </button>
    </div>
  </body>

在这本小书的第一张会有一个点赞或者是取消点赞的功能首先是在我们的constructor函数中通过状态将判断是否点赞,

那么我们在第二个函数是一个点击事件,中就通过元素选择器选择到了这个元素并将这个这个元素的布尔值设为相反通过三目表达式将点赞或者是取消赋值给innerHTML中

render

render是可以返回的一个html的字符串通过createDOMFromStrign()来将我们的字符串转化为我们的dom元素通过调用事件监听来进行绑定再调用bind来改变this的指向性

  class LikeButton {
    constructor () {
      this.state = { isLiked: false }
    }
    changeLikeText () {
      const likeText = this.el.querySelector('.like-text')
      this.state.isLiked = !this.state.isLiked
      likeText.innerHTML = this.state.isLiked ? '取消' : '点赞'
    }
    render () {
      this.el = createDOMFromString(`
        <button class='like-button'>
          <span class='like-text'>点赞</span>
          <span>👍</span>
        </button>
      `)
      this.el.addEventListener('click', this.changeLikeText.bind(this), false)
      return this.el
    }
  }

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐