react中使用字符串中生成HTML


在react項目中,有的時候字符串中有HTML標簽,如果直接輸出字符串的話,那HTML標簽就會被當成一個字符串。這顯然不是我們想要的效果,所以我們需要用到 

dangerouslySetInnerHTML 這個屬性來將dom字符串渲染出來。

dangerouslySetInnerHTML

dangerouslySetInnerHTML 是 React 為瀏覽器 DOM 提供 innerHTML 的替換方案。通常來講,使用代碼直接設置 HTML 存在風險,因為很容易無意中使用戶暴露於跨站腳本(XSS)的攻擊。因此,你可以直接在 React 中設置 HTML,但當你想設置 dangerouslySetInnerHTML 時,需要向其傳遞包含 key 為 __html 的對象,以此來警示你。例如:

1 function createMarkup() {
2   return {__html: 'First · Second'};
3 }
4 
5 function MyComponent() {
6   return <div dangerouslySetInnerHTML={createMarkup()} />;
7 }

使用例子:

 1 // js
 2 
 3  const Str = '需要鼠標<br/>需要特別檢查攝像頭<br/>需要電腦包<br/>測試機轉租賃,序列號:XKS2014'
 4 
 5 
 6  // 輸出
 7 
 8 <span dangerouslySetInnerHTML={{__html: Str}}></span>
 9 
10 
11 //結果
12 
13 // 需要鼠標
14 // 需要特別檢查攝像頭
15 // 需要電腦包
16 // 測試機轉租賃,序列號:XKS2014

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM