微信小程序開發教程

一、開發前準備
申請賬號、安裝開發者工具
二、文件與目錄結構
1、程序主體:
app.js
app.json 程序配置
1.1、程序配置

    pages 頁面路徑
     window 頁面的窗口表現
     tabBar 底部tab切換
     networkTimeout
     debug
        {
                 "pages":[  //哪個寫在上面,哪個就是入口文件
                        "pages/index/index",
                        "pages/movie/movie",
                        "pages/logs/logs"
                 ]
        }

app.wxss 公共樣式
2、頁面:
index.js
index.json 頁面配置
2.1、頁面配置
window 頁面的窗口表現
index.wxss 頁面樣式
index.wxml 頁面結構
三、註冊程序與頁面
1、註冊app,只需要註冊一次,可以得到一個程序的實例,可以被其他頁面訪問
在其他頁面,通過getApp全局函數獲取應用實例 const app = getApp(); 獲取全局數據:app.gldData; //{a:1}

App({
    gldData:{ a:1 },
    onLaunch:function(){  //一運行小程序就會執行
        //初始化代碼
    }
})
2、註冊page,有幾個頁面,在每個頁面內都需要註冊
Page({
    data:{
        b:2
    },
    onLoad:function(){   //一進入頁面就會執行
        console.log( this.data )  //{b:2}  通過this,獲取單個頁面內數據
    }
})

四、程序生命週期
1、App

App({

  //在小程序運行期間,只會執行一次
    //程序銷燬之後(過了一段時間沒有運行或者手動刪除小程序),再次啓動小程序就會執行
    onLaunch(){
        console.log('小程序啓動時執行')
    },
    //每次從後臺切換出來就會執行
    onShow(){
        console.log('切換到小程序時執行')
    },
    //每次切換到後臺就會執行
    onHide(){
        console.log('小程序被隱藏在後臺時執行')
    }
})

2、Page

Page({
    //tab之間的切換,不會讓頁面重新加載,也不會卸載,只會讓頁面顯示與隱藏
    //在進行NavigatorTo鏈接跳轉的時候,目標頁面會被加載onLoad,原始頁面會被隱藏onHide
    //此時點擊導航條上的回退按鈕NavigatorBack,目標頁面會onShow,不會onLoad,原始頁面會被卸載onUnload

    //頁面加載的時候執行,只會執行一次
    onLoad(){   },
    //頁面第一次渲染完成之後執行,只會執行一次
    onReady(){  },
    //頁面顯示就會執行,會執行多次,比如tab切換從a頁面切換到b頁面,那麼也就是等於b頁面顯示了
    onShow(){   },
    //頁面隱藏就會執行,會執行多次,比如tab切換從a頁面切換到b頁面,那麼也就是等於a頁面隱藏了
    onHide(){   },
    //頁面卸載的時候執行,只會執行一次
    onUnload(){ },
})

五、數據與列表渲染
1、數據在index.js裏面的data裏面定義,

Page({
    data:{ //數據類型,可以是字符串、數組、對象、數值等等
        name:'kate'
    }
})
要輸出到頁面上,直接就是<view>{{name}}</view>即可

2、渲染數組 wx:for wx:key

Page({
    data:{ 
        names:[ 'kate','jim','lily' ],
        age:['1','2','3']
    }
})
<view wx:for="{{names}}" wx:key="*this">{{item}}</view>

3、條件渲染 變量爲true,即滿足條件就進行渲染,反之就不進行渲染

<view wx:if="{{ score>60 && score<90 }}">等級B</view> 
<view wx:elif="{{ score<60 && score>0 }}">等級C</view>
<view wx:else>等級A</view>

4、塊級渲染block,block是虛擬組件,不會出現在頁面上
同時顯示多個元素

<block wx:if="{{ score==80 }}">
    <view>{{ name }}</view>
    <view>{{ score }}</view>
    <view>等級A</view>
</block>
<block wx:else>
    <view>{{ name }}</view>
    <view>{{ score }}</view>
    <view>等級B</view>
</block>

5、使用模板

Page({
    data:{ 
        names:[ 'kate','jim','lily' ],
        age:['1','2','3'],
    score:80,
    name:'aaa'
    }
})
先定義模板:
<template name="myTemplate1">
    <view>我是模板</view>
    <view>{{name}}</view>
</template>

<template name="myTemplate2">
    <block wx:for="{{age}}" wx:key="*this">
        <view>{{item}}</view>   
        <view>啦啦啦</view>
    </block>
</template> 

<template name="myTemplate3">
    <block wx:if="{{score==80}}">
        <view>{{name}}</view>   
        <view>{{score}}</view>
        <view>等級A</view>
    </block>
    <block wx:else>
        及格
    </block>
</template> 

使用:
<view>
    <template is="myTemplate1" data="{{name:'kate'}}"></template>
    <template is="myTemplate2" data="{{age:age}}"></template>
    <template is="myTemplate3" data="{{name,score}}"></template> //data="{{name,score}}等價於data="{{name:name , score:score}}
</view>

6、import與include
可以把模板定義在專門的template.wxml裏面
要使用裏面的模板,只需要在對應的wxml裏面
<import src="template.wxml"> //import引入的模板,你需要在頁面上告知使用的是哪一個模板,<template is="myTemplate1" data="{{name:'kate'}}"></template>
<include src="template.wxml"> //include引入模板,在頁面上什麼位置寫上,那麼模板代碼就在什麼地方顯示
微信小程序開發教程

六、事件

零碎知識點
1、對象被轉爲字符串就變成了[ object object ]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章