關於在taro使用wx.parse那些事

  • 2019 年 10 月 3 日
  • 筆記

  好久不見,好久沒更新博客,最近工作也比較忙,今天在使用解決富文本的時候遇到兩個bug,由於第一次使用wx.parse經驗不足,走了很多彎路,今天特地把自己修復bug的感想分享一下,希望能幫助更多的小夥伴們,有錯誤的地方,請多多指教?。

  首先在taro實現富文本的方式有多種,之前也是嘗試過使用richText標籤,但是感覺很不好用,一個原因是,每次要把原有後台返回的數據格式都要組裝成特定的格式,過程很麻煩,還好後端比較友好給轉好,不然就費勁了。關於richText的使用

  最終使用了一次就放棄了,最後選擇wx.parse,它是微信小程序專門用來解析富文本的,上手很快,只要把需要的包給引進來就行了,這裡不詳細介紹了,可以參考wx.parse,在使用過程中注意以下幾點:

1、在渲染之前一定要引用這兩個文件

import WxParse from '../../../components/wxParse/wxParse'  import '../../../components/wxParse/wxParse.wxss'

今天就是因為沒有引入css文件排查了半天,不引入的現象就是,加粗加顏色的文本會換行顯示,圖片也不會自適應。其中的主要的原因在於思路錯了,一開始一直以為,可以用css強制把它變成一行,後來發現行不通,因為層級太深,節點關係也不統一,接着試了第二中方法就是改變wxParse的代碼,將strong的標籤給轉成text標籤,這個方法太蠢了,最後在github上發現和我一樣問題的朋友,引入wxss解決了問題。

2、在渲染組件之前

 WxParse.wxParse('article', 'html', res.data.msg, this.$scope, 5);
  參數說明:
  bindName綁定的數據名(必填)
  type可以為html或者md(必填)
  data為傳入的具體數據(必填)
  target為Page對象,一般為this(必填)
  imagePadding為當圖片自適應是左右的單一padding(默認為0,可選)

3、在標籤中引入

<import src='../../../components/wxParse/wxParse.wxml' />  //注一定要有  <template is='wxParse' data='{{wxParseData:article.nodes}}'/>  //註:article和上面保持一致

ok,簡單的一條數據就可以渲染成功了,問題來了,我們開發過程中經常會遇到像ugc列表一樣的需求,不僅僅渲染的是一條數據,而是很多條json數據,怎麼實現呢,我上網搜了一下,有很多解決方法,這裡不多說了,主要是我試了沒成功,感興趣的可以試試,順便教教我?,參考文件wxParse多數據循環使用,最終用了一個偷懶的方法解決了,思路就是自己封裝了一個組件,然後遍歷的時候每次調用這個組件,可以說簡單粗暴而且有效,封裝組件的過程就是實現一條數據的過程,可以參考1,2,3步驟。

這就是我今天遇到的兩個關於taro富文本問題bug,最後總結:問題很簡單,主要是一開始思路沒想對,以後遇到問題先不要急於去寫,先仔細分析下問題,方向很重要,晚安?