輕鬆入門微信小程序開發


小程序

項目結構與頁面結構

在這裏插入圖片描述
對應我們的項目:
在這裏插入圖片描述
對於小程序的全局配置文件 app.jsonapp.wxss(遵循css語法),參照官方文檔進行配置:全局配置全局樣式
在這裏插入圖片描述

對於 app.js 會調用 App 方法創建小程序的實例對象,並定義應用的生命週期事件
在這裏插入圖片描述
圖中在 App 方法中還添加了一個對象,並在對象中編寫了一個 onLaunch 方法(程序啓動時執行),我們可以改成如下的形式同樣會執行:
在這裏插入圖片描述
在這裏插入圖片描述
總結如下:
在這裏插入圖片描述


邏輯層

邏輯層指的是:json 和 js文件。

json文件: 實現標籤欄
在這裏插入圖片描述
js文件:
小程序額外提供的成員

  • App 方法:定義應用程序對象
  • Page 方法:定義頁面對象
  • getApp 方法:獲取全局應用程序對象(App)
  • getCurrentPages 方法:獲取當前頁面的調用棧(數組)
    • 調用棧:訪問頁面的記錄,最後的就是當前頁面

小程序額外提供的對象:

  • wx 對象:提供核心 api,參考 api

此外小程序 js 還支持 commonJS 規範
在這裏插入圖片描述
在這裏插入圖片描述


界面層

數據綁定:首先參考官方文檔.
在這裏插入圖片描述

簡單綁定

  • 內容
			<view class="container">
			  <text>{{messages}}</text>
			  <text>{{person.name}}</text>
			</view>
			Page({
			  data: {
			    message: 'Hello Moke!',
			    person: {
			      name: "MOKE",
			      sex: "male"
			    }
			  }
			})
  • 組件屬性
		<view class="{{uiView}}"></view>
		data: {
		    uiView: "hello"
		}
		.hello {
		  width: 100px;
		  height: 100px;
		  background: red
		}
  • 布爾類型:如果不用 mustache,屬性值默認識別爲字符串
		<checkbox checked="{{false}}"> </checkbox>
  • 此外還可以用於:邏輯判斷、算術/字符串運算、三元運算等等。

列表渲染

		//定義一個數組
		data: {
		    toDo: [
		      { name: "JavaSE", finish: true },
		      { name: "HTML", finish: false },
		      { name: "Spring", finish: false },
		    ]
		  }
		<!--可以通過 wx:for-item 改掉默認的 item 標籤(wx:for-index)-->
		<view wx:for="{{toDo}}">
		    <checkbox checked="{{item.finish}}"></checkbox>
		    <text>{{index}}</text><!-- 下標 -->
		    <text>{{item.name}}</text>
		</view>	

事件處理

		<!-- 不同標籤有不同的 bindxxx 事件屬性 -->
		<button bindtap="buttonShownum">顯示</button>
		buttonShownum: function (e) {
		    console.log(123)
		    console.dir(e)//以樹狀形式打印對象
		}

事件冒泡

		<!-- 嵌套的 bindtao 會產生冒泡,內部需要使用 catchtap -->
		<view bindtap="outterHandler" style="width:200px;height:200px;background-color:red">
    		<view catchtap="innerHandler" style="width:100px;height:100px;background-color:blue"></view>
		</view>
		outterHandler: function () {
		    console.log(1)
		},
		innerHandler: function () {
		    console.log(2)
		}

事件傳參

		<!-- data-xxx 來定義傳遞的參數(可以有多個),名稱帶 - 會自動使用駝峯命名法 -->
		<button bindtap="buttonShownum" data-name="moke">顯示</button>
		通過系統爲我們提供的 e 參數進行傳遞
		buttonShownum: function (e) {
	    	console.dir(e.target.dataset)
	    }

在這裏插入圖片描述

單向數據流
在這裏插入圖片描述

		<!-- input 輸入修改後,messages 會改變 -->
		<view class="container">
		  <input value="{{messages}}" bindinput="inputHandler"></input>
		  <text>{{messages}}</text>
		</view>
		inputHandler: function (e) {
		    console.dir(e.detail)
		    //區別於 this.messages = xxx,setData可以通知界面重新綁定數據
		    this.setData({
		      messages: e.detail.value
		    })
		}

條件渲染

		<view class="xxx1" wx:if="{{ 1 < 2}}">123</view>
		<view class="xxx2" wx:if="{{ 1 < 2}}">456</view>
		<!-- 也可以使用如下形式,block 可以作爲 控制屬性(wx:) 的載體,在渲染時沒有實際意義-->
		<block wx:if="{{ 1 < 2}}">
			<view class="xxx1">123</view>
			<view class="xxx2">456</view>
		</block>

區別於 hidden 屬性:hidden 只是隱藏代碼還在,而 wx:if 不成立時代碼不存在(未被渲染)。

WXSS與CSS的區別
在這裏插入圖片描述
樣式導入其實 css 也可以實現,這裏主要看下不同的尺寸單位:

  • rpx(responsive pixel): 可以根據屏幕寬度進行自適應

如在 iPhone6 上,屏幕寬度爲375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。


UI組件

詳細可以看 官方文檔,這裏我們介紹一些使用較多的組件。
組件的效果可以在 WeUI,官方提供的預覽界面看到。

基礎內容組件

  • icon: 圖標組件
  • progress: 進度條組件
  • rich-text: 富文本
  • text: 文本

示例

		<view class="container">
		  <!-- icon、progress、rich-text、text -->
		  <icon type="success"></icon>
		  <view class="test"><!-- 進度條不能在 class爲默認容器下顯示 -->
		    <progress percent="80" active /> 
		  </view>
		  <rich-text><h3>測試富文本</h3></rich-text>
		  <text>測試文本</text>
		</view>

在這裏插入圖片描述
表單組件

  • button: 按鈕
  • checkbox: 複選框
  • radio: 單選
  • form: 表單
  • input: 輸入框

操作反饋組件
例如底部彈起的操作按鈕組件,在 官方擴展組件中。

導航組件

  • navigator: 頁面鏈接,用於實現頁面跳轉
    • 頁面傳值:

    頁面跳轉傳值:<naigator url="…/index2?id=1"></naigator>
    頁面獲取值:
    Page({
    data: {}
    onLoad: function(options){
    //初始化頁面函數,options 就是頁面帶過來的參數
    }
    })

    • 也可以通過 wx.navigateTo 函數進行跳轉

佈局組件
view 是常用的視圖容器,可以使用CSS3中出現的伸縮佈局:

  • 設置:display: flex;
  • 橫向:flex-direction:row
  • 縱向:flex-direction:column

swiper 可以實現選項卡或者輪播圖等。


API

小程序官方給我們提供了許多 API,只需在調用時查看即可,這裏看下常用的。
參考小程序開發文檔:API

發送請求: 參考

		onLoad: function(options){
			wx.request({
				url: 'https://api.douban.com/v2/movie/in_theaters',
				header: {
					'Content-Type': 'json'
				},
				success: function (res){
					console.log(res)
				}
			})
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章