$ taro convert
即可完成轉換。轉換後的**儲存在根目錄下的taroconvert
資料夾下。你需要定位到taroconvert
目錄執行npm install
命令之後就可以使用taro build
命令編譯到對應平台的**。
假設已有乙個轉換後檔案如下:
import from'@tarojs/components
'import taro
from
'@tarojs/taro
'from''
import
'./index.scss''
page')
class
_c extends taro.component
componentwillmount(e)
componentdidshow() ,
success: res =>)
return
} that.setdata()}})
} config =
render() = this
.state
return
(
"container
">
"top-sec
">
"a-row
">
"label
">物流單號
"text
">
"a-row
">
"label
">物流公司
"text
">
"sec-wrap
">
"details-info
">
"line-box
" />>
"dot">
classname="
active-dot
"hidden=
>
"yuan-red
" />
classname="
default-dot
"hidden=
/>
"info
">
"date-box
">
"text
">
) })}
) }
}export
default _c
轉換後的this.setdata
的 api 相當於小程式的this.setdata
的 polyfill,他和this.setstate
最大的區別就在於,this.setdata
之後data
的資料是同步更新,而渲染是非同步更新,而setstate
兩者都是非同步的。
this.data
和this.properties
相當於 taro 的this.state
和this.props
的 alias,當它們的資料更新時,對應的state
和props
也會同步更新。
taro 會將原始檔案的生命週期鉤子函式轉換為 taro 的生命週期,完整對應關係如下:
page.onload
componentwillmount
onshow
componentdidshow
onhide
componentdidhide
onready
componentdidmount
onunload
componentwillunmount
onerror
componentdidcatcherror
componentwillmount
component.created
componentwillmount
attached
componentdidmount
ready
componentdidmount
detached
componentwillunmount
moved
保留這個錯誤通常是由於原始**的初始data
中沒有對應的資料,後來通過this.setdata
補充資料造成的。在 taro 中推薦不管是state(data)
還是properties(props)
都要設定乙個預設值。你可以在類構造器或修改原始**提供乙個預設值解決這個問題,這也應該是編寫**的最佳實踐。
這是由於wxparse
的原始碼使用了乙個不存在的template
宣告造成的。你可以修改wxparse
的原始碼檔案wxparse.wxml
134 行到 207 行:
"wxparse1
">
if="
}">
if="
}">
"default
" size="
mini
">
for="
}" wx:for-item="
item
" wx:key="">
is="
wxparse0
" data="
}" />
"}">
class="
} wxparse-li
" style="
}">
class="
} wxparse-li-inner
">
class="
} wxparse-li-text
">
class="
} wxparse-li-circle
">
class="
} wxparse-li-text
">
for="
}" wx:for-item="
item
" wx:key="">
is="
wxparse0
" data="
}" />
"}">
is="
wxparsevideo
" data="
}" />
"}">
is="
wxparseimg
" data="
}" />
"}">
"wxparsetagatap
"class="
wxparse-inline } wxparse-}
" data-src="
}" style="
}">
for="
}" wx:for-item="
item
" wx:key="">
is="
wxparse0
" data="
}" />
"}">
class="
} wxparse-}
" style="
}">
for="
}" wx:for-item="
item
" wx:key="">
is="
wxparse0
" data="
}" />
"}">
is="
wxparsebr
">
"}">
class="
} wxparse-}
" style="
}">
for="
}" wx:for-item="
item
" wx:key="">
is="
wxparse0
" data="
}" />
else
class="
} wxparse-} wxparse-}
" style="
}">
for="
}" wx:for-item="
item
" wx:key="">
is="
wxparse0
" data="
}" />
"}">
is="
wxemojiview
" data="
}" />
把的模板內所有
修改為
再執行
taro convert
即可。這樣修改之後還會取消原來wxparse
只能處理 11 級 html 巢狀的問題,理論上記憶體不爆棧可以處理無限級 html 巢狀。
Taro微信小程式
這裡預設你已經建立好了乙個專案,如果你還沒有建立好乙個專案,去看另外一篇文章taro環境搭建及建立乙個專案 在vscode終端中使用 cnpm install 安裝依賴編譯過程中可能會出現錯誤 解決方案 問題根本 這通常是因為執行npm安裝後環境發生了變化。執行 npm重建節點sass 強制 來為當...
微信小程式 原生元件
1.原生元件 camera canvas live player live pusher map textarea video input 僅在focus時表現為原生元件 2.原生元件的使用限制 1 原生元件的層級是最高的 a.無論設定 z index 為多少,都無法蓋在原生元件上 b.後插入的原生...
Taro全實踐 Taro在微信小程式中的生命週期
一 taro的本身生命週期 生命週期 componentwillmount componentdidmount componentdidshow componentdidhide componentdidcatcherror componentdidnotfound shouldcomponentu...