【react——小技巧】显示代码块

用户在的输入内容中任何以 `` 包含的内容都会用 包含起来显示到页面上。 这是一个 HTML 结构,需要往页面动态插入 HTML 结构我们只能用 dangerouslySetInnerHTML 了,修改 src/Comment.js,把原来 render() 函数中的:

<p>{comment.content}</p>

修改成:

<p dangerouslySetInnerHTML={{
  __html: this._getProcessedContent(comment.content)
}} />

我们把经过 this._getProcessedContent 处理的评论内容以 HTML 的方式插入到

元素中。this._getProcessedContent 要把 `` 包含的内容用 包裹起来,一个正则表达式就可以做到了:

...
  _getProcessedContent (content) {
    return content
      .replace(/`([\S\s]+?)`/g, '<code>$1</code>')
  }
...

但是这样做会有严重的 XSS 漏洞,用户可以输入任意的 HTML 标签,用

前 5 个 replace 实际上是把类似于 <、> 这种内容替换转义一下,防止用户输入 HTML 标签。最后一行代码才是实现功能的代码。

这时候在评论框中输入:

这是代码块 console.log,这是 <h1>正常内容</h1>。

然后点击发布,看看效果:

React.js 小书实战评论功能图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React开发中,有一些小技巧可以帮助提高开发效率和代码质量。以下是一些常用的React开发小技巧: 1. 使用函数组件代替类组件:函数组件具有更简洁的语法和更好的性能,在不需要使用生命周期方法和状态管理的情况下,优先考虑使用函数组件来编写代码。 2. 使用React Fragments来包裹组件:React Fragments可以帮助我们避免多余的DOM节点,提高代码的可读性和性能。 3. 使用解构赋值来获取props:使用解构赋值可以更方便地获取和使用props,使代码更简洁。 4. 使用箭头函数来定义组件方法:箭头函数可以解决绑定this的问题,使代码更简洁易读。 5. 使用条件渲染来控制组件显示:使用条件渲染可以根据不同的条件来显示不同的组件或内容,提高代码的灵活性和可复用性。 6. 使用ES6的模板字符串来拼接字符串:使用模板字符串可以更方便地拼接字符串,避免繁琐的字符串拼接操作。 7. 使用PropTypes或TypeScript来进行类型检查:使用PropTypes或TypeScript可以帮助我们在开发过程中及时发现潜在的类型错误,提高代码的健壮性和可维护性。 8. 使用React DevTools进行调试:React DevTools是一个强大的调试工具,可以帮助我们分析组件的渲染过程、性能优化和状态管理等问题。 这些小技巧可以使React开发更加高效和优雅。但需要根据具体的项目需求和个人经验选择合适的技巧来应用。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [React 开发必须知道的 34个技巧](https://blog.csdn.net/sinat_17775997/article/details/117035521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值