React中的HTML轉(zhuǎn)義寫法

在JSX中輸出固定內(nèi)容
直接使用UTF-8字符

<div>版權(quán) ?</div>
使用HTML轉(zhuǎn)義字符

<div>版權(quán) ?</div>
或者十進(jìn)制的轉(zhuǎn)義字符

<div>版權(quán) ?</div>
動態(tài)內(nèi)容的轉(zhuǎn)義
但是如果在外面加一層大括號的話,react為了防止xss會將轉(zhuǎn)義后的字符實體再次轉(zhuǎn)義

React 會將所有要顯示到 DOM 的字符串轉(zhuǎn)義,防止 XSS。所以,如果 JSX 中含有轉(zhuǎn)義后的實體字符,比如 ?(?),則最后 DOM 中不會正確顯示,因為 React 自動把 ? 中的特殊字符轉(zhuǎn)義了。

<div>{'版權(quán) ?'}</div>
錯誤輸出

版權(quán) ?
正確寫法:

直接使用UTF-8字符仍然可以正確輸出

<div>{'版權(quán) ?'}</div>
安全的做法是使用對應(yīng)的Unicode碼

<div>{'版權(quán) \u00a9'}</div>
使用fromCharCode

<div>{'版權(quán) ' + String.fromCharCode(169)}</div>
使用數(shù)組組裝

<div>{['版權(quán) ', <span>?</span>]}</div>
使用dangerouslySetInnerHTML,可以避免React轉(zhuǎn)義字符

<div dangerouslySetInnerHTML={{ __html: '版權(quán) ?' }} />

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GUIDS 第一章 為什么使用React? React 一個提供了用戶接口的JavaScript庫。 誕生于Fac...
    jplyue閱讀 3,700評論 1 11
  • HTML模版 之后出現(xiàn)的React代碼嵌套入模版中。 1. Hello world 這段代碼將一個一級標(biāo)題插入到指...
    ryanho84閱讀 6,429評論 0 9
  • 1.1React 簡介 React 把用戶界面抽象成一個個組件,開發(fā)者通過組合這些組件,最終得到功能豐富、可交互的...
    sylvia_yue閱讀 521評論 2 1
  • 一、什么是JSX 使用JSX聲明一個變量(React 當(dāng)中的元素): JSX是一種 JavaScript 的語法擴...
    Lia代碼豬崽閱讀 1,812評論 0 2
  • 以下內(nèi)容是我在學(xué)習(xí)和研究React時,對React的特性、重點和注意事項的提取、精練和總結(jié),可以做為React特性...
    科研者閱讀 8,398評論 2 21

友情鏈接更多精彩內(nèi)容