uniapp開發小程序的開發規范總結
一、項目結構
在完成uniapp項目的創建之後,其項目目錄結構如下所示。我們下面對項目結構進行簡單的介紹,如果你看完介紹的內容,仍然無法理解,建議您先去學習一下vue。因為uniapp是基於vue核心語法進行開發,所以學習vue是必要的。
- .hbuilderx是開發該項目使用的工具HBuilderX的開發配置目錄,一般不需要手工修改其內容。有瞭該目錄別人在導入項目的時候,會默認使用你的開發工具配置信息。因為每個人使用開發工具的習慣不同,所以該目錄一般不上傳到版本管理倉庫。
- pages是所有vue頁面的存放目錄,可以根據自己的規劃在pages目錄下面創建子目錄
- static目錄通常存放項目引用的靜態資源,比如:圖片、圖標、字體等
- unpackage各個平臺的打包文件存放目錄,項目打包之後的結果文件就存放在這個目錄下。
- App.vue是項目的根組件,即Vue單頁面入口文件,在該頁面可以監聽應用級別的生命周期函數。
- main.js是項目的js入口文件,將vue頁面實例化,並整合vue頁面所需要的組件插件等內容。
- index.html是項目的首頁,項目的入口頁面。main.js實例化之後的vue頁面結果,最終將渲染到首頁中。
- manifest.json是應用的配置文件,用於指定應用程序的名稱、圖標、權限、啟動頁面設置、插件等信息。
- pages.json是對應用的顯示頁面進行配置,比如文件路徑、窗口樣式、原生導航欄配置等內容。
- uni.scss文件主要是用於控制應用頁面的整體顯示風格,預置瞭一些SCSS的變量,比如文字顏色、背景顏色、邊框顏色、圖片尺寸等等
最後,一般來說我們還需要手動建立一個components
目錄,用於存放vue的components組件。
二、開發規范
遵循Vue 單文件組件 (SFC) 規范
<template> <view class="content"> <image class="logo" src="/static/logo.png"></image> <view class="text-area"> <text class="title">{{title}}</text> </view> </view> </template> <script> export default { data() { return { title: 'Hello' } }, onLoad() { }, methods: { } } </script> <style> //這裡可以書寫css、sass、less等樣式及樣式預處理器 </style>
- 一個vue的文件中隻能包含一個頂級的
<template></template>
模板 - 一個vue文件隻能包含一個
<script></script>
腳本定義 - 一個vue文件可以包含一個或多個
<style></style>
樣式定義
uniapp的頁面開發遵循 Vue 單文件組件 (SFC) 規范。另外,uniapp不能使用js進行html文檔的DOM操作,請嚴格遵循vue的MVVM的數據綁定開發方式。
組件及接口規范
需要註意的是,在uniapp中不能使用標準的html標簽,uniapp組件名稱及使用方式的定義更貼近微信小程序,優先參考:uni-app 組件文檔,可以輔助參考微信小程序組件文檔。比如:
<view>
標簽在uniapp中的含義與標準html中的<div>
標簽能力相當如果你希望定義圖片,不能直接使用html中的img,你應該使用uniapp的組件標簽image
uniapp的接口能力(JS API)非常接近微信小程序規范,但需將前綴 wx
替換為 uni
,詳見uni-app接口規范
三、css樣式規范
全局樣式與局部樣式
uni.scss
文件中預置瞭一些全局樣式scss變量,這些變量用於定義應用的整體樣式風格,比如:文字顏色、背景顏色、邊框顏色等等。 需要註意的是這個文件不要隨意修改,如果要更改的話隻能修改變量的值,不要修改變量的名。那麼如果我們希望增加一些自定義的全局樣式,應該怎麼去做呢?參考下面的方法:
- 首先,自己寫一個樣式文件,比如:app.scss ,該文件中自定義樣式書寫。將該文件放置於/static/style目錄下
- 其次在app.scss文件的開頭,引入uni.scss文件,引入語句為:@import '~@/uni.scss';
- 最後在App,vue的樣式中,引入這個自定義全局樣式文件
<style> @import '~@/static/style/app.scss'; </style>
uniapp的局部樣式實現是以vue文件為單位的,在某個vue文件內定義的樣式,隻在該vue的渲染范圍內生效。
尺寸響應式
uniapp框架為瞭更好的適配不同的移動端屏幕,設置瞭750rpx為屏幕的基準寬度。如果屏幕寬度小,rpx顯示效果會等比縮小;如果屏幕寬度大,rpx顯示效果會等比例放大。舉例說明: 如果設計稿的元素寬度是600px,某元素X的寬度是100px,那麼該元素X在uniapp裡面設置的寬度應該是:750 * 100 /600 = 125rpx。
如果大傢覺得自己手動計算比較麻煩,可以在文件manifest.json
中設置transformPx
的值為true,項目會自動將px
轉換為rpx
。
字體的使用
uniapp支持字體的引用方式分為2種情況,如果字體文件小於 40kb,uniapp會自動將其轉化為 base64 格式;將字體文件放置到static目錄下,然後通過font-face定義字體。
@font-face { font-family: 'test-icon'; src: url('~@/static/iconfont.ttf'); }
如果字體文件大於等於 40kb, 需開發者自己轉換將字體文件轉換成Base64字符串,否則使用將不生效;將轉換之後的Base64字符串粘貼到下文的位置,完成字體的定義。
@font-face { font-family: 'test-icon'; font-weight: normal; font-style: normal; src: url(data:font/truetype;charset=utf-8;base64,轉換的base64內容) format('truetype'); }
字體的使用方式是通用的css樣式,使用font-family
即可。
請使用flex佈局方式
為更好的支持跨平臺,uniapp框架建議使用css的Flex方式佈局。
總結
到此這篇關於uniapp開發小程序的開發規范的文章就介紹到這瞭,更多相關uniapp小程序開發規范內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- uniapp中微信小程序與H5相互跳轉以及傳參詳解(webview)
- 分析uniapp入門之nvue爬坑記
- uniapp開發微信小程序自定義頂部導航欄功能實例
- 詳解uni-app中的樣式
- vue uniapp實現分段器效果