美文网首页
react动态渲染----dangerouslySetInner

react动态渲染----dangerouslySetInner

作者: 夏天deg | 来源:发表于2018-06-27 10:47 被阅读0次

给字符串加超链接

在react中,一个节点的文案是提前配置好的对象,进行整体渲染,类似以下情况:

const dataList = [{
  name: 'xiaoming',
  content: {
    des: '你好测试环境地址',
    cont: '你好页面内容点击链接',  
  }
}, {
  name: 'xiaohong',
  content: {
    des: '你好测试环境1地址2',
    cont: '你好页面内容1点击链接',  
  }
}, {
  name: 'xiaolan',
  content: {
    des: '你好测试环境2链接地址',
    cont: '你好页面内容2http://baidu.com',  
  }
}]
  • 如果你刚好配到一个pd需要你对其中的'地址、点击链接、地址2、http://baidu.com'这些都加上对应的超链接;
    此时你会怎么加呢?
    1)直接超链接
    2)对字符串做匹配处理
    3)模板字符串
    不这些都不行。首先1)3)渲染到页面本身就不会成超链接的形式,2)成本太高,不建议
  • 那怎么办呢?
  • 答:用dangerouslySetInnerHTML。

多数时候DOM是透过render中设定的结构来处理,有些时候我们想透过字串形式的HTML来做操作时,
dangerouslySetInnerHTML就可以派上用场,将字串转译给render来使用;也可将unicode的编码做呈现,也能防止xss。
用法:
<div dangerouslySetInnerHTML={{__html: '<div>xx</div>'}} />
用开发工具来检视时,透过dangerouslySetInnerHTML产生的 DOM 不会有data-reactid。实际应用上,在制作复杂的component时,也许可以使用它的方法,运用字串的操作来降低render时的结构复杂度。

  • 代码如下:
const dataList = [{
  name: 'xiaoming',
  content: {
    des: '你好测试环境<a href="http://xxxx">地址</a>',
  ....
}]

<div>
   {dataList.map(item => (
     <p
        key={item.content}
        dangerouslySetInnerHTML = {{__html: item.des}}
     />
  ))}
</div>

感谢Thanks♪(・ω・)ノ
参考链接1
参考链接2

相关文章

  • react动态渲染----dangerouslySetInner

    给字符串加超链接 在react中,一个节点的文案是提前配置好的对象,进行整体渲染,类似以下情况: 如果你刚好配到一...

  • React服务器端渲染入门

    React服务器端渲染入门 理解当服务器端接收到请求时, 在服务器端基于React动态渲染页面, 并返回给浏览器显...

  • React 服务端渲染

    React服务端渲染原理 由于React是通过动态Dom树进行HTML的绘制,并且是数据驱动视图的,所以在SEO的...

  • React-Redux

    React 实际上只是 UI 框架,通过 JSX 生成动态 dom 渲染 UI,没有架构、没有模板、没有设计模式、...

  • React手记

    React手记 1、 2、React元素渲染 React元素渲染是通过方法ReactDOM.render(elem...

  • 第七节:React列表渲染与数据收集

    1. 列表渲染 1.1 列表渲染说明: 列表渲染 先将列表数据转为React元素列表, 然后在渲染 React会将...

  • 第七节:React列表渲染与数据收集

    1. 列表渲染 1.1 列表渲染说明: 列表渲染 先将列表数据转为React元素列表, 然后在渲染 React会将...

  • react中key值的添加

    回想下,当我们在react开发中是不是经常写下面的代码 当我们通过数组来动态渲染一批组件时,react要求我们必须...

  • 关于React组件

    渲染React组件 通过ReactDOM直接渲染 通过React.Component创建组件再通过ReactDOM...

  • 4.React中Memo实现指定组件进行渲染

    memo可以解决react渲染时的效率问题,react可以将数据渲染在视图中,如果数据没有变化,视图还是重新渲染。...

网友评论

      本文标题:react动态渲染----dangerouslySetInner

      本文链接:https://www.haomeiwen.com/subject/zfqbyftx.html