1. 程式人生 > 實用技巧 >uniapp nvue開發注意事項

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 顯示省略符號來代表被修剪的文字

只支援 textricthext

lines

  lines {number}: 正整數,指定最大文字行數,預設lines值為0,表示不限制最大行數lines。如果文字不夠長,實際展示行數會小於指定行數。