微信小程序開發01

微信小程序開發01

1、從0開發helloworld

從0開發hello,world,初始化一個項目,基本架構只留下pages文件夾和project.config.json。

現在我們著手寫hello,world!

  1. 創建項目3個app基本文件: app.js/wxss/json
  2. 創建about文件夾
  3. 創建4個基本文件:about.js/wxml/wxss/json
  4. 往文件里面寫東西

在完成上面基本文件的創建后,我們就要著手寫代碼了。json文件不能為空

首先,我們要對app.json進行操作:

{

  "pages": [

    "pages/about/about"   //指定訪問路由

  ]

}

接下來,進行hello,world的編寫:

about.wxml ------相當于html文件

<text class="info">hello,world!</text>

about.js

//創建一個page函數
page{
    
}

接下來保存編譯,hello,world就出來了

然后,進行樣式的修改:

找到about.wxss文件:

.info{
  /* text-align: center; */
  font-size: 30px;
  /* color: red; */
  font-weight: bold;
  /* padding: 30px auto; */
}

就可以定制自己的樣式了。

2、進行導航欄的編輯

找到about,json文件:

我們查看微信小程序官網開發文檔,https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html,發現我們只需要在自己的頁面對*.json文件進行修改,就可以對導航欄進行編輯:

配置項

屬性 類型 默認值 描述 最低版本
navigationBarBackgroundColor HexColor #000000 導航欄背景顏色,如 #000000
navigationBarTextStyle string white 導航欄標題顏色,僅支持 black / white
navigationBarTitleText string 導航欄標題文字內容
navigationStyle string default 導航欄樣式,僅支持以下值:default 默認樣式custom 自定義導航欄,只保留右上角膠囊按鈕 微信客戶端 7.0.0
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的樣式,僅支持 dark / light
backgroundColorTop string #ffffff 頂部窗口的背景色,僅 iOS 支持 微信客戶端 6.5.16
backgroundColorBottom string #ffffff 底部窗口的背景色,僅 iOS 支持 微信客戶端 6.5.16
enablePullDownRefresh boolean false 是否開啟當前頁面下拉刷新。詳見 Page.onPullDownRefresh
onReachBottomDistance number 50 頁面上拉觸底事件觸發時距頁面底部距離,單位為px。詳見 Page.onReachBottom
pageOrientation string portrait 屏幕旋轉設置,支持 auto / portrait / landscape 詳見 響應顯示區域變化 2.4.0 (auto) / 2.5.0(landscape)
disableScroll boolean false 設置為 true 則頁面整體不能上下滾動。只在頁面配置中有效,無法在 app.json 中設置
disableSwipeBack boolean false 禁止頁面右滑手勢返回 微信客戶端 7.0.0
usingComponents Object 頁面自定義組件配置 1.6.3

頁面配置中只能設置 app.jsonwindow 對應的配置項,以決定本頁面的窗口表現,所以無需寫 window 這個屬性。

配置示例

{
  "navigationBarBackgroundColor": "#ffffff",
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "微信接口功能演示",
  "backgroundColor": "#eeeeee",
  "backgroundTextStyle": "light"
}

在模擬器中就可以顯示相應的樣式了。

3、view、text、image組件初探

text常見組件元素:

<text class="info" id="jay" style="" bindtap="f0" hiddeon="" data-user-name="user" >hello,world!</text>

image常見元素:

<image src="/images/a.jpg"></image>

容器:

在html中容器是: div

在wxml里是: view

4、快速實現基本布局

about.wxml:

<view class="container">
  <image src="/images/a.jpg"></image>
  <text>電影周周看</text>
  <text>每周推薦一部電影</text>
  <text>我的微博:xxx.weibo.com</text>
</view>

about.wxss:

.container{
  background-color: #eee;
  height: 100vh;
  text-align: center;
}

text{
  display: block;
}

iamge,text{
  margin-bottom: 60px; 
}

就實現了我們要想實現的布局,但問題產生了,只要我們的圖片變化,就會導致布局變化,舊的重新計算margin-bottom,這是非常不智能的。

注:

1.em

在做手機端的時候經常會用到的做字體的尺寸單位

說白了 em就相當于“倍”,比如設置當前的div的字體大小為1.5em,則當前的div的字體大小為:當前div繼承的字體大小*1.5

但是當div進行嵌套的時候,em始終是按照當前div繼承的字體大小來縮放,參照后面的例子。

2.rem

這里的r就是root的意思,意思是相對于根節點來進行縮放,當有嵌套關系的時候,嵌套關系的元素的字體大小始終按照根節點的字體大小進行縮放。

參照后面給的demo

3.vh

vh就是當前屏幕可見高度的1%,也就是說

height:100vh == height:100%;

但是有個好處是當元素沒有內容時候,設置height:100%該元素不會被撐開,

但是設置height:100vh,該元素會被撐開屏幕高度一致。

4.vw

vw就是當前屏幕寬度的1%

補充一句,當設置width:100%,被設置元素的寬度是按照父元素的寬度來設置,

但是100vw是相對于屏幕可見寬度來設置的,所以會出現50vw 比50%大的情況

所以,我們要使用flex布局:

.container{
  background-color: #eee;
  height: 100vh;
  /* text-align: center; */
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}

#img{
  height: 187.5rpx;
  width: 187.5rpx;
  border-radius: 100rpx;
}

5、添加頁面

添加頁面weekly:

同about頁面,需要在pages下創建一個文件夾weekly,并創建4個基本要素文件,由于本實例和about實例用到了相同的css代碼段,所以將其放在全局配置中:app.wxss

.container{
  background-color: #eee;
  height: 100vh;  //高度100%
  display: flex;  //采用flex布局
  flex-direction: column;   //方向采用垂直
  justify-content: space-around;  //相同間隔
  align-items: center; //居中
}

app.json全局配置文件:

{
  "pages": [
    "pages/about/about",
    "pages/weekly/weekly"
  ]
}

想要那個做主頁,就把哪個連接放前面。

現在我們要完成一個簡單的功能,在about頁面上,給每周推薦加上navigator,實現頁面間的跳轉。

在about.wxml中:

<view class="container">
  <image src="/images/a.jpg" id="img"></image>
  <text>電影周周看</text>
  <view>
    <text>我</text> <navigator url="/pages/weekly/weekly" style='display: inline;' open-type="navigate" hover-class="nav-hover" class="nav-default">每周推薦</navigator><text>一部電影</text>
  </view>
  <text>我的微博:xxx.weibo.com</text>
</view>

在這里,主要講解如下代碼段:

  <view>
    <text>我</text> <navigator url="/pages/weekly/weekly" style='display: inline;' open-type="navigate" hover-class="nav-hover" class="nav-default">每周推薦</navigator><text>一部電影</text>
  </view>
.nav-default{
  color: blue;
}
.nav-hover{
  color: red;
}

由于text是塊級元素,為了把它轉為行內元素,所以使用樣式display: inline并給他添加容器view,轉為行內元素,

由于text只支持字符串文本,所以navigatior元素不能解析,所以將這一句話分成了3個片段,將需要選擇跳轉的元素進行圈定,如上面的本周推薦,就給他添加了navigator元素,用來支持它跳轉另外的頁面,在navigator中也有很多樣式和方法,首先url是跳轉的頁面網址,open-type支持多種方式:

在這里,由于css的執行,在同一塊里面,當css定義的屬性有沖突的時候,后面個成功!

如果變為

.nav-hover{
  color: red;
}
.nav-default{
  color: blue;
}

就不會在點擊的時候顯示為紅色,會一直是藍色!

open-type 的合法值

示例代碼

在開發者工具中預覽效果

.navigator-hover {
  color:blue;
}
.other-navigator-hover {
  color:red;
}
<!-- sample.wxml -->
<view class="btn-area">
  <navigator url="/page/navigate/navigate?title=navigate" hover-class="navigator-hover">跳轉到新頁面</navigator>
  <navigator url="../../redirect/redirect/redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">在當前頁打開</navigator>
  <navigator url="/page/index/index" open-type="switchTab" hover-class="other-navigator-hover">切換 Tab</navigator>
  <navigator target="miniProgram" open-type="navigate" app-id="" path="" extra-data="" version="release">打開綁定的小程序</navigator>
</view>

默認是navigator,使用redirect沒有返回按鈕

獲取更多內容

獲取更多內容請訪問: https://juntech.top/

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容

  • 一、第三方應用平臺 1.凡科(便宜) 2.建站之星 3.即速應用(專業性強) 二、微信小程序開發工具 1.微信官方...
    我是呆哥閱讀 141評論 0 1
  • 每天的學習記錄,可能有的地方寫的不對,因為剛學,以后發現錯的話會回來改掉整體流程 https://develope...
    有點健忘閱讀 4,741評論 0 7
  • 原文:http://gold.xitu.io/entry/57e34d6bd2030900691e9ad7/pro...
    AiPuff閱讀 2,506評論 0 3
  • 昨天,學校臨時通知開會。后來才知道是對學校管理層民意測驗。這樣的事年年都要做。同事們很多年前就此事簡稱為打勾。領導...
    獨孤草原狼閱讀 231評論 0 0
  • 大雨朦朧的夜色格外迷人 靜坐樓臺 聽雷雨交加 空氣里飄著泥土的味道 屋檐下 嘀嗒嘀嗒 馬路上的霓虹燈 隨車流拉長了...
    z云淡風輕閱讀 141評論 0 1