uniapp nvue開發注意事項
主要參考官方文件:https://uniapp.dcloud.io/nvue-outline,但是一些常見的問題,自己遇到了,記錄下先。
一、nvue是什麼?
uni-app
App端內建了一個基於 weex 改進的原生渲染引擎,提供了原生渲染能力。
在App端,如果使用vue頁面,則使用webview渲染;如果使用nvue頁面(native vue的縮寫),則使用原生渲染。一個App中可以同時使用兩種頁面,比如首頁使用nvue,二級頁使用vue頁面,hello uni-app示例就是如此。
雖然nvue也可以多端編譯,輸出H5和小程式,但nvue的css寫法受限,所以如果你不開發App,那麼不需要使用nvue。
以往的 weex ,有個很大的問題是它只是一個高效能的渲染器,沒有足夠的API能力(比如各種push sdk整合、藍芽等能力呼叫),使得開發時非常依賴原生工程師協作,開發者本來想節約成本,結果需要前端、iOS、Android 3撥人開發,適得其反。 nvue 解決了這個問題,讓前端工程師可以直接開發完整 App,並提供豐富的外掛生態和雲打包。這些組合方案,幫助開發者切實的提高效率、降低成本。
同時uni-app
擴充套件了weex原生渲染引擎的很多排版能力,修復了很多bug。
二、NVUE的一些常見問題
1、字型設定不生效
發現字型怎麼設定都不生效,後來在文件裡這樣一句話:
只有
text
標籤可以設定字型大小,字型顏色
所以只能改為這樣即可:
<view class="mb12">
<text class="font14 bold">第{{cp.catalogNo}}章 {{cp.title}}</text>
</view>
將view裡的文字用text包一層即可。突然想起來之前看weex的時候,好像就說了,文字只能寫在text標籤裡
2、背景顏色設定不生效
設定 background: #f2f6fc; 但是發現怎麼都不生效;其實在編譯階段就會有提示 background 不支援之類的
不支援複合樣式,不支援簡寫
所以改為這樣即可:border等之類的樣式也是一樣的問題
.desc{
background-color: #f2f6fc;
border-radius: 8rpx;
padding: 16rpx 20rpx;
}
3、預設flex佈局,並且預設flex-direction:cloumn;
所以如果你想要 row 形式,則需要寫明:flex-direction: row;
4、選擇器支援少,只支援class選擇器。
放一張官網注意事項吧:
5、文字溢位及多行溢位的問題
nvue不支援white-space,所以H5端的文字溢位不好使。nvue提供了自己的寫法
text-overflow
text-overflow {string}
:設定內容超長時的省略樣式。
可選值 | 描述 |
---|---|
clip | 修剪文字 |
ellipsis | 顯示省略符號來代表被修剪的文字 |
只支援
text
和ricthext
lines
lines {number}
: 正整數,指定最大文字行數,預設lines
值為0,表示不限制最大行數lines
。如果文字不夠長,實際展示行數會小於指定行數。