微信小程序入門篇(二)

上篇 微信小程序入門篇(一)我們講解了一下小程序的整體架構(gòu)桥状,今天來講一下雇初,一個頁面的具體實現(xiàn)原理,好注意聽烁兰,下面要開始畫重點啦~哈哈

頁面的構(gòu)成

  1. 還記得我們在上篇文章中講解如何加入一個界面嗎耐亏?在app.json中的pages加入要加的文件路徑就可以啦,文件路徑可以隨便起缚柏,系統(tǒng)會自動創(chuàng)建出來的苹熏,那么我就接著之前的講,我們之前創(chuàng)建了一個頁面叫addPage币喧,addPage里面包含四個文件** addPage.js轨域、addPage.json、addPage.wxml杀餐、addPage.wxss**這四個對應(yīng)的作用是什么吶干发?
  • addPage.js 頁面數(shù)據(jù)的存儲,網(wǎng)絡(luò)請求的加載都是在這里
  • addPage.json 用于設(shè)置導(dǎo)航欄樣式史翘,和app.json性質(zhì)一樣枉长,如果沒設(shè)置樣式冀续,默認用app.json中的樣式
  • addPage.wxml 頁面的效果都在這里面,就是展現(xiàn)給用戶的界面
  • addPage.wxss 頁面樣式設(shè)計必峰,頁面的一些樣式屬性都寫在這里
    1-1.png

頁面的解析

  1. addPage.js解析
// pages/addPage/addPage.js
Page({

  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
  
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad: function (options) {
    console.debug("onLoad--監(jiān)聽頁面加載");
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
   */
  onReady: function () {
    console.debug("onReady--監(jiān)聽頁面初次渲染完成");
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面顯示
   */
  onShow: function () {
    console.debug("onShow--監(jiān)聽頁面顯示");
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面隱藏
   */
  onHide: function () {
    console.debug("onHide--監(jiān)聽頁面隱藏");
  },

  /**
   * 生命周期函數(shù)--監(jiān)聽頁面卸載
   */
  onUnload: function () {
    console.debug("onUnload--監(jiān)聽頁面卸載");
  },

  /**
   * 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動作
   */
  onPullDownRefresh: function () {
    console.debug("onPullDownRefresh--監(jiān)聽用戶下拉動作");
  },

  /**
   * 頁面上拉觸底事件的處理函數(shù)
   */
  onReachBottom: function () {
    console.debug("onReachBottom--頁面上拉觸底事件的處理函數(shù)");
  },

  /**
   * 用戶點擊右上角分享
   */
  onShareAppMessage: function () {
    console.debug("onShareAppMessage--用戶點擊右上角分享");
  }
})

這里面注釋都是系統(tǒng)自動創(chuàng)建的洪唐,我沒動,注釋寫的很清楚吼蚁,我沒什么要多說的啦凭需,差別是我在每個方法里加入了console.debug()這個是以后調(diào)試bug會用到的,輸出日志肝匆,就是以后程序出現(xiàn)的問題就靠他輸出來粒蜈,我加入的目的就是要展示一下,系統(tǒng)啟動小程序都執(zhí)行了那些方法,怎么測試系統(tǒng)執(zhí)行了那些方法吶旗国?

  • 第一步枯怖,改動跳轉(zhuǎn)的代碼,首先找到pages/index/index.js,修改bindViewTap方法里的url,路徑改為addPage的路徑能曾,這樣頁面跳轉(zhuǎn)的時候就會跳到addPage界面啦度硝,修改過的代碼記得保存,否者效果無效借浊!
 bindViewTap: function() {
    wx.navigateTo({
      //url: '../logs/logs'
      url: '../addPage/addPage'
    })
  },
  • 第二步塘淑,找到菜單欄的調(diào)試按鈕,切換到調(diào)試模式蚂斤,找到Console控制臺存捺,選著All或者Debug模式,Console會輸出日志信息曙蒸,接下來點擊一下helloWord上面的用戶頭像捌治,看看會出現(xiàn)上面效果,如果操作沒錯的話會出現(xiàn)下面的效果纽窟,
    2-1.png

    看控制臺輸出的信息肖油,理論上是會出現(xiàn)三行藍色字,第四行是因為我還執(zhí)行了一個返回鍵的操作由此可判斷臂港,當(dāng)點擊返回鍵時執(zhí)行onUnload方法森枪,還有當(dāng)頁面加載的時候方法執(zhí)行的先后順序為onLoad->onShow->onReady,我們只要知道頁面的生命周期就好审孽,至于具體的調(diào)用县袱,我們在后面實戰(zhàn)的時候講解,還有如果你點擊界面三個小點佑力,然后執(zhí)行轉(zhuǎn)發(fā)操作式散,就會執(zhí)行onShareAppMessage方法,具體我就不演示啦打颤,addPage.js中還有的方法是** onHide暴拄、onPullDownRefresh漓滔、onReachBottom**,當(dāng)A跳轉(zhuǎn)到B時候乖篷,A就會執(zhí)行onHide的方法啦响驴,onPullDownRefresh下拉刷新數(shù)據(jù)會用到,onReachBottom用于底部加載更多那伐,這些都放在后面在講解電商開發(fā)的時候一起講踏施。好,關(guān)于addPage.js就講解到這里
  1. addPage.wxml與addPage.wxss
    .wxml與.wxss構(gòu)成了整個界面罕邀,我們自己新建的addPage文件沒什么樣式,所以我就拿index.wxml和index.wxss來講解
  • index.wxml
<!--index.wxml-->
<view class="container">
  <view  bindtap="bindViewTap" class="userinfo">
    <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
    <text class="userinfo-nickname">{{userInfo.nickName}}</text>
  </view>
  <view class="usermotto">
    <text class="user-motto">{{motto}}</text>
  </view>
</view>

2-2.png
看代碼對應(yīng)的視圖养距,從代碼看過去黑色框(view)包含兩個黃色框(view)诉探,第一個黃色框又包含兩個image和text,界面布局大致就是這樣棍厌,看里面具體代碼肾胯,黑色框view里有一個屬性class,這個class可以理解為ID這個class是用來關(guān)聯(lián)index.wxss,可以理解為黑色框的view設(shè)置為"container"的樣式耘纱,繼續(xù)看第一個黃色框View敬肚,同理可以知道第二個黃色框View的樣式設(shè)為"userinfo",咦,bindtap是什么意思吶束析?bindtap你可以理解為事件監(jiān)聽艳馒,系統(tǒng)定義的固定字段,寫事件一定會用到這個员寇,還記得上面我們做的測試系統(tǒng)執(zhí)行的方法時弄慰,不是有修改過index.js中"bindViewTap"的方法嘛,這個"bindViewTap"是自定義的方法名蝶锋,可以隨意修改陆爽,但是bindtap字段是不可修改的否則代碼無效,再說說綠色框中的text扳缕,有沒有注意到{{motto}}{{userInfo.nickName}}慌闭,這個就是給視圖賦值,就是界面上你看到的HelloWord就是這么設(shè)置的躯舔,"motto驴剔、userInfo.nickName"字段是在index.js中的data里面,這里要強調(diào)的是我們在調(diào)用index.js里data數(shù)據(jù)時庸毫,賦值的時候要記得加入{{data}}兩個中括號仔拟,這樣系統(tǒng)才能識別數(shù)據(jù)。

  • index.wxss
/**index.wxss**/
.userinfo {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.userinfo-avatar {
  width: 128rpx;
  height: 128rpx;
  margin: 20rpx;
  border-radius: 50%;
}
.userinfo-nickname {
  color: #aaa;
}
.usermotto {
  margin-top: 200px;
}
/**app.wxss**/
.container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 200rpx 0;
  box-sizing: border-box;
} 
2-3.png

結(jié)合效果圖一起看樣式代碼飒赃,看到"userinfo"和"container"是不是眼熟利花,就是之前在index.wxml中class的樣式科侈,我們在wxss定義好樣式礁芦,就是通過這些字段把index.wxml和index.wxss關(guān)聯(lián)起來闭翩,才有的上面的界面效果

wxss樣式積累

wxss樣式里代碼看不懂可以查閱這里,如果沒找到對應(yīng)樣式玫锋,請自行百度嘍挠乳,這些也是代碼君問的度娘

  1. display屬性
    • none:此元素不會被顯示
    • block:兩個元素自動換行
    • inline:兩個元素靠在一起
    • inherit:繼承父類
    • flex:多欄多列
  2. flex-direction:
    • column 垂直分布
    • row 水平分布
  3. flex-wrap:
    • nowrap item溢出不換行
    • wrap 超出的item跳到下一行
  4. justify-content屬性
    • flex-start:左對齊
    • flex-end:右對齊
    • center:居中
    • space-between :item中間留出等間距
    • space-around:環(huán)繞item流程等間距
  5. align-items item 邊界線對齊方式
  • flex-start | flex-end | center | baseline | stretch
  1. border-bottom 邊界線
  • 舉個栗子 1px solid #ccc;
  1. align-items item 邊界線對齊方式
  • flex-start | flex-end | center | baseline | stretch
  1. overflow-x 內(nèi)容超過邊框處理方式
    • visible 顯示超出的內(nèi)容
    • hidden 隱藏超出的內(nèi)容
    • auto 自動加入滾動條

總結(jié)

今天我們講解了頁面的所有內(nèi)容权薯,知識點很多,尤其是wxss的樣式睡扬,其實wxss樣式和css樣式的屬性是差不多的盟蚣,所以可以多去參考css樣式屬性,今天就說這么多卖怜,兩篇的小程序入門文章屎开,應(yīng)該可以幫助大家跨進小程序的大門啦,接下來马靠,我們將進入實戰(zhàn)篇《電商》奄抽,很多朋友都問怎么做一個電商小程序,所以我將在后面的文章中甩鳄,一步步教大家開發(fā)一個電商小程序逞度,敬請期待!原創(chuàng)不易妙啃,覺得不錯就點個贊吧档泽!

上一篇:微信小程序入門篇(一)

下一篇:微信小程序?qū)崙?zhàn)篇-電商(一)

建了一個小程序技術(shù)交流群,想入群的讀者請加微信
小程序入群.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末彬祖,一起剝皮案震驚了整個濱河市茁瘦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌储笑,老刑警劉巖甜熔,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異突倍,居然都是意外死亡腔稀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門羽历,熙熙樓的掌柜王于貴愁眉苦臉地迎上來焊虏,“玉大人,你說我怎么就攤上這事秕磷∷斜眨” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疏尿。 經(jīng)常有香客問我瘟芝,道長,這世上最難降的妖魔是什么褥琐? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任锌俱,我火速辦了婚禮,結(jié)果婚禮上敌呈,老公的妹妹穿的比我還像新娘贸宏。我一直安慰自己,他們只是感情好磕洪,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布吭练。 她就那樣靜靜地躺著,像睡著了一般析显。 火紅的嫁衣襯著肌膚如雪线脚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天叫榕,我揣著相機與錄音,去河邊找鬼姊舵。 笑死晰绎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的括丁。 我是一名探鬼主播荞下,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼史飞!你這毒婦竟也來了尖昏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤构资,失蹤者是張志新(化名)和其女友劉穎抽诉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吐绵,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡迹淌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了己单。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唉窃。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纹笼,靈堂內(nèi)的尸體忽然破棺而出纹份,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布蔓涧,位于F島的核電站件已,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蠢笋。R本人自食惡果不足惜拨齐,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昨寞。 院中可真熱鬧瞻惋,春花似錦、人聲如沸援岩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽享怀。三九已至羽峰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間添瓷,已是汗流浹背梅屉。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鳞贷,地道東北人坯汤。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像搀愧,于是被迫代替她去往敵國和親惰聂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容