V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
51300520
V2EX  ›  问与答

react.js 怎么为已有的元素绑定事件?

  •  
  •   51300520 · 2019-12-20 15:28:36 +08:00 · 1654 次点击
    这是一个创建于 1808 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在我有< p>一段文章< /p >,这个是直接写在 html 标签里,不是用 react render 出来的。 现在点击要求背景变色,用 jquery 做我很清楚,用 react 怎么做?这段<p>标签一开始就有内容内容,不是 react render 出来的。

    教程上都是还是空元素的时候就用 react render 出来,那样我知道怎么弄,这种一开始不是用 react render 出来而是直接 html 代码写出来的元素怎么用 react 事件处理?
    9 条回复    2019-12-20 17:44:41 +08:00
    rioshikelong121
        1
    rioshikelong121  
       2019-12-20 15:54:44 +08:00
    在合适的 lifeCycle 里面直接使用原生方法即可。
    SakuraKuma
        2
    SakuraKuma  
       2019-12-20 15:58:22 +08:00
    事件是会冒泡的。。
    rockjike
        3
    rockjike  
       2019-12-20 16:00:55 +08:00
    1 楼+1
    compoentDidMount() {
    const content = document.getElementById('XXX')
    content.style.background = "#XXX"
    }
    B3C933r4qRb1HyrL
        4
    B3C933r4qRb1HyrL  
       2019-12-20 16:06:50 +08:00
    原生方法+1
    CODEWEA
        5
    CODEWEA  
       2019-12-20 17:35:55 +08:00
    没必要用 react 不是脱裤子放屁吗
    Rubicker666
        6
    Rubicker666  
       2019-12-20 17:38:30 +08:00
    React.js 本质还是 JS,所以原生怎么用 React.js 中也可以用。
    nnnToTnnn
        7
    nnnToTnnn  
       2019-12-20 17:41:43 +08:00
    这不符合 React 的设计思想吧?

    如果真的要这样做。

    不如

    npm install jquery

    $("id").css("background","#xxx")

    如果是 React.js

    jquery 怎么玩就怎么玩,react 本身就是 js
    nnnToTnnn
        8
    nnnToTnnn  
       2019-12-20 17:43:28 +08:00
    React 不是一切皆为组件么? < p>一段文章< /p >不是组件 render 的出来的,而是 eval ? 或者其他方式进行添加进去的话,这种就需要采用原始的方式进行操作了
    nnnToTnnn
        9
    nnnToTnnn  
       2019-12-20 17:44:41 +08:00
    一般 state 和 props 就可以解决所有的问题了。 加上动态组件基本上不存在你说的那种情况
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2669 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:14 · PVG 19:14 · LAX 03:14 · JFK 06:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.