<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue中將html字符串轉換成html后遇到的問題小結

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:02:47
        文檔

        vue中將html字符串轉換成html后遇到的問題小結

        vue中將html字符串轉換成html后遇到的問題小結:今天整理之前做vue項目時遇到的一些問題,發(fā)現(xiàn)了當時遇到的一個很小但是又會引出很多問題的一個問題(總之就是很有意思,聽我慢慢給你到來),這個問題就是當時處理后端數(shù)據(jù)時,如何將后端返回來的字符串轉換成html標簽,其實根據(jù)vue官網(wǎng)的一個v-html方法
        推薦度:
        導讀vue中將html字符串轉換成html后遇到的問題小結:今天整理之前做vue項目時遇到的一些問題,發(fā)現(xiàn)了當時遇到的一個很小但是又會引出很多問題的一個問題(總之就是很有意思,聽我慢慢給你到來),這個問題就是當時處理后端數(shù)據(jù)時,如何將后端返回來的字符串轉換成html標簽,其實根據(jù)vue官網(wǎng)的一個v-html方法

        今天整理之前做vue項目時遇到的一些問題,發(fā)現(xiàn)了當時遇到的一個很小但是又會引出很多問題的一個問題(總之就是很有意思,聽我慢慢給你到來),這個問題就是當時處理后端數(shù)據(jù)時,如何將后端返回來的字符串轉換成html標簽,其實根據(jù)vue官網(wǎng)的一個v-html方法是不是覺得很簡單,當時我也是這樣想的,可是我發(fā)現(xiàn)了幾個問題(官網(wǎng)給出的動態(tài)渲染任意 HTML 容易導致 XSS 攻擊的問題我就不說了,在這里我只是用它來渲染數(shù)據(jù)):

          第一,當我用v-html將后端字符串轉換成了html標簽后,發(fā)現(xiàn)我在那個字符串中解析出來的html里面設置的樣式?jīng)]有加上;

          第二,當我們使用v-html的時候,是會自動生成一個div標簽的,有時候這個小小的div標簽可能會影響到我們的布局,這個時候你會想到用template來替代div不就完事了,可是很不幸,給出我試驗后的結果讓你看看吧

        <div v-html="'<p>渴望成為大牛的男人</p>'"></div>              //頁面上成功渲染出了我們想要的p標簽,但同時它的外圍也被一個div標簽包裹著
        <template v-html="'<p>渴望成為大牛的男人</p>'"></template>        //頁面上并沒有出現(xiàn)我們想要的這個p標簽
        

             有沒有發(fā)現(xiàn)一個小小的需求就會帶來很多意想不到的問題,讓我不禁感嘆,代碼的世界真的是神奇啊,廢話不多說,接下來我給出這兩個問題的解法

        我們先來解決第一個問題:

            解決這個問題的開始,我們要先了解一下scoped,在vue中,當你在一個style標簽上加了scoped屬性時,這個style標簽內(nèi)的樣式將會被鎖死在當前這個組件內(nèi),為的就是避免我們的樣式出現(xiàn)混亂,假如說你的項目中如果每個style標簽上都加了scroped這個屬性,從某種意義上說就相當于實現(xiàn)了樣式的模塊化。

          為什么我要說scoped這個屬性,因為在你加了scroped之后,當你引用一些第三方組件,比如swiper,當你想要去覆蓋它的樣式的時候,你會發(fā)現(xiàn)覆蓋不了,那么我們后來通過v-html引入的html元素肯定也逃不掉,這個時候我們可以通過一種特殊的方式,穿透scoped,比如這樣:

        <style scoped>
         >>>需要穿透的類名 {
         樣式
         }
        </style>

          嗯對,就是這個姿勢,我們使用>>>就可以實現(xiàn)一個穿透效果,讓我們在使用scoped的情況下,去修改其他組件的樣式,還有另外一種方法就是你可以把需要穿透的樣式寫到另一個style標簽中,不加scoped,這樣也可以,看你個人需求。

        接下來我們解決第二個問題,同時我們把這個問題轉化為如何將一個html字符串轉換為html元素:

           在這里我們可以想將一個html字符串轉換為html元素的話,我想到的辦法就只能進行DOM操作了,在vue中,要進行DOM操作的話,我們可以使用自定義指令,如果有小伙伴對自定義指令不了解的話,可以去vue的官方文檔先看下自定義指令是什么,官網(wǎng)鏈接:https://cn.vuejs.org/v2/guide/custom-directive.html    

          解決這個問題的大致思路是這樣的:我們可以在要加入這個html字符串的元素綁定一個自定義指令,我們在data中定義一個htmlStr變量用來存儲字符串,綁定到我們的自定義指令上,然后在我們這個自定義指令中我們可以獲取到這個當前這個元素的dom節(jié)點還有我們需要解析的字符串,我們通過原生js的innerHtml方法將字符串渲染到頁面上即可:

        data(){
         return {
         htmlStr:'<p>渴望成為大牛的男人</p>' //你可以把后端html字符串數(shù)據(jù)來賦值給htmlStr
         }
         },
        <main v-exchangeHtml:foo='htmlStr'> //定義自定義指令
        //全局注冊自定義指令
        Vue.directive('exchangeHtml',{ 
         bind: function(el,foo){
         console.log(el,foo)
         el.innerHTML += foo.value
         }
        })

        我把el和foo打印出來,以便大家理解,這是打印出來的結果

        自此,我們就完成了直接將html字符串轉換成我們需要的html元素并且添加了進來

        總結

        以上所述是小編給大家介紹的vue中將html字符串轉換成html后遇到的問題小結 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue中將html字符串轉換成html后遇到的問題小結

        vue中將html字符串轉換成html后遇到的問題小結:今天整理之前做vue項目時遇到的一些問題,發(fā)現(xiàn)了當時遇到的一個很小但是又會引出很多問題的一個問題(總之就是很有意思,聽我慢慢給你到來),這個問題就是當時處理后端數(shù)據(jù)時,如何將后端返回來的字符串轉換成html標簽,其實根據(jù)vue官網(wǎng)的一個v-html方法
        推薦度:
        標簽: VUE 問題 html
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 香蕉免费看一区二区三区| 亚洲国产成人精品无码区在线网站| 暖暖免费高清日本一区二区三区| 国产无遮挡色视频免费视频| 亚洲精品乱码久久久久久久久久久久 | 亚洲18在线天美| 国产精品亚洲专一区二区三区| 中文字幕免费视频精品一| 99热在线精品免费全部my| 日韩精品电影一区亚洲| 亚洲男人都懂得羞羞网站| 香港经典a毛片免费观看看| 国产h视频在线观看网站免费| 亚洲JIZZJIZZ中国少妇中文| 亚洲精品视频在线观看视频| 阿v视频免费在线观看| 免费看一级做a爰片久久| 亚洲天堂福利视频| 日韩人妻无码精品久久免费一 | 免费一级毛片清高播放| 亚洲最大中文字幕无码网站| 国产在线观看免费视频软件| 好男人视频在线观看免费看片| 亚洲va无码手机在线电影| 无码 免费 国产在线观看91| 无码国产精品一区二区免费 | 亚洲乱码一二三四区国产| 麻豆国产精品入口免费观看| 亚洲日本国产综合高清| 无码国产精品一区二区免费| 成人精品国产亚洲欧洲| 成人免费视频国产| WWW国产成人免费观看视频| 亚洲国产电影av在线网址| 特级精品毛片免费观看| 亚洲av无码国产精品色午夜字幕 | 久久99国产乱子伦精品免费| 亚洲高清国产拍精品26U| 国色精品va在线观看免费视频 | 亚洲性色AV日韩在线观看| 亚洲中文字幕丝袜制服一区|