一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

微信小程序基礎(chǔ)入門

 lwgchc 2016-10-29


來源:汪磊

鏈接:cnblogs.com/micua/p/wechat-weapp-essential.html


準(zhǔn)備


Demo 項(xiàng)目地址 (https://github.com/zce/weapp-demo)


Clone or Download(需準(zhǔn)備GIT環(huán)境)


$ cd path/to/project/root

$ git clone https://github.com/zce/weapp-demo.git project-name --depth 1

$ cd project-name


沒有g(shù)it環(huán)境,可以直接下載


(https://github.com/zce/weapp-demo/archive/master.zip)


安裝開發(fā)環(huán)境


下載地址


  • Windows 64位


(https:///wxa-dev-logic/download_redirect?type=x64&from=mpwiki&t=1475052055457)


  • Windows 32位


https:///wxa-dev-logic/download_redirect?type=ia32&from=mpwiki&t=1475052055457)


  • macOS

 

(https:///wxa-dev-logic/download_redirect?type=darwin&from=mpwiki&t=1475052055457)


安裝過程


對(duì)于Windows用戶直接雙擊下一步的方式安裝即可,此處注意我們使用的版本是官方最新的版本(不需要破解),可以不用AppID,也就是說沒有資格的開發(fā)者也可以測(cè)試。


環(huán)境測(cè)試以及演示項(xiàng)目


安裝完成過后通過打開我們已經(jīng)完成的應(yīng)用測(cè)試環(huán)境是否正常


開發(fā)者工具安裝完成后,打開并使用微信掃碼登錄。




選擇創(chuàng)建“項(xiàng)目”,填入你在公眾平臺(tái)的AppID,如果沒有的話可以點(diǎn)擊無(wú)AppID。



設(shè)置一個(gè)本地項(xiàng)目的名稱(非小程序名稱),比如WeApp Demo,并選擇一個(gè)本地文件夾作為存儲(chǔ)目錄。



接下來點(diǎn)擊新建項(xiàng)目就可以在主界面中預(yù)覽到我們的豆瓣電影示例了




小程序開發(fā)初體驗(yàn)


Hello world


希望是一個(gè)從零到一的轉(zhuǎn)換過程~


創(chuàng)建項(xiàng)目


接下來創(chuàng)建一個(gè)新的項(xiàng)目,理解小程序項(xiàng)目的基本結(jié)構(gòu)和一些基礎(chǔ)語(yǔ)法。


官方的開發(fā)工具為此準(zhǔn)備了一個(gè)QuickStart項(xiàng)目。在創(chuàng)建過程中,如果選擇的文件夾是個(gè)空文件夾,開發(fā)者工具會(huì)提示:是否需要?jiǎng)?chuàng)建一個(gè)quick start項(xiàng)目。選擇是,開發(fā)者工具會(huì)自動(dòng)幫助我們?cè)陂_發(fā)目錄里生成一個(gè)簡(jiǎn)單的項(xiàng)目。



借助官方的QuickStart項(xiàng)目完成最基本的Hello world,理解小程序項(xiàng)目的基本結(jié)構(gòu),學(xué)習(xí)基礎(chǔ)操作與語(yǔ)法。


項(xiàng)目結(jié)構(gòu)





我簡(jiǎn)單的畫了一個(gè)結(jié)構(gòu)圖:



頁(yè)面結(jié)構(gòu)


每個(gè)頁(yè)面組件也分為四個(gè)文件組成:


[page-name].js


頁(yè)面邏輯文件,用于創(chuàng)建頁(yè)面對(duì)象,以及處理頁(yè)面生命周期控制和數(shù)據(jù)處理


[page-name].json


設(shè)置當(dāng)前頁(yè)面工作時(shí)的window的配置,此處會(huì)覆蓋app.json中的window設(shè)置,也就是說只可以設(shè)置window中設(shè)置的屬性


[page-name].wxml


wxml指的是Wei Xin Markup Language


用于定義頁(yè)面中元素結(jié)構(gòu)的,語(yǔ)法遵循XML語(yǔ)法,注意是XML語(yǔ)法,不是HTML語(yǔ)法,不是HTML語(yǔ)法,不是HTML語(yǔ)法


[page-name].wxss


wxml指的是Wei Xin Style Sheet


用于定義頁(yè)面樣式的,語(yǔ)法遵循CSS語(yǔ)法,擴(kuò)展了CSS基本用法和長(zhǎng)度單位(主要就是rpx響應(yīng)式像素)


項(xiàng)目配置




相關(guān)鏈接:


  • 官方文檔  https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html


  • 生成配置文件

https:///start.html


小程序中的配置文件分為兩種:


  • 全局配置文件,根目錄下的app.json


  • 頁(yè)面配置文件,每個(gè)頁(yè)面目錄下的[page-name].json


app.json


項(xiàng)目配置聲明文件(指定項(xiàng)目的一些信息,比如導(dǎo)航欄樣式顏色等等)


{

  // 當(dāng)前程序是由哪些頁(yè)面組成的(第一項(xiàng)默認(rèn)為初始頁(yè)面)

  // 所有使用到的組件或頁(yè)面都必須在此體現(xiàn)

  // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#pages

  'pages': [ ... ],

  // 應(yīng)用程序窗口設(shè)置

  // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#window

  'window': { ... },

  // 應(yīng)用導(dǎo)航欄設(shè)置

  // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#tabBar

  'tabBar': { ... },

  // 網(wǎng)絡(luò)超時(shí)設(shè)置

  // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#networkTimeout

  'networkTimeout': {},

  // 是否在控制臺(tái)輸出調(diào)試信息

  // https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html#debug

  'debug': true

}


[page-name].json


用于指定特定頁(yè)面工作時(shí),window的設(shè)置:


{

  // 導(dǎo)航條背景色

  'navigationBarBackgroundColor': '#35495e',

  // 導(dǎo)航條前景色(只能是white/black)

  'navigationBarTextStyle': 'white',

  // 導(dǎo)航條文本

  'navigationBarTitleText': '電影 ? 豆瓣',

  // 窗口背景顏色

  'backgroundColor': '#fff',

  // 窗口前景色

  'backgroundTextStyle': 'dark',

  // 是否開啟下拉刷新

  'enablePullDownRefresh': true}

}


邏輯層分析


應(yīng)用程序邏輯app.js


app.js作為項(xiàng)目主入口文件,用于創(chuàng)建應(yīng)用程序?qū)ο?/span>


  // App函數(shù)是一個(gè)全局函數(shù),用于創(chuàng)建應(yīng)用程序?qū)ο驛pp({

  // ========== 全局?jǐn)?shù)據(jù)對(duì)象(可以整個(gè)應(yīng)用程序共享) ==========

  globalData: { ... },


  // ========== 應(yīng)用程序全局方法 ==========

  method1 (p1, p2) { ... },

  method2 (p1, p2) { ... },


  // ========== 生命周期方法 ==========

  // 應(yīng)用程序啟動(dòng)時(shí)觸發(fā)一次

  onLaunch () { ... },


  // 當(dāng)應(yīng)用程序進(jìn)入前臺(tái)顯示狀態(tài)時(shí)觸發(fā)

  onShow () { ... },


  // 當(dāng)應(yīng)用程序進(jìn)入后臺(tái)狀態(tài)時(shí)觸發(fā)

  onHide () { ... }})


也就是說,當(dāng)應(yīng)用程序啟動(dòng)時(shí)會(huì)自動(dòng)執(zhí)行項(xiàng)目目錄下的app.js文件。


在app.js中通過調(diào)用全局App([option])方法創(chuàng)建一個(gè)應(yīng)用程序?qū)嵗?/span>


其中通過參數(shù)指定的一些特定的方法,會(huì)在特定的執(zhí)行時(shí)機(jī)去執(zhí)行,也就是說通常所說的生命周期事件方法。




也可以定義任意其他的對(duì)象成員(例如:方法和屬性),這些成員可以在內(nèi)部直接使用,或者外部通過獲取app對(duì)象調(diào)用:




app.js


App({

  data1: '123',

  data2: { message: 'hello world' },

  api: {

    list: 'https://github.com/zce/',

    detail: 'https://github.com/zce/',

  },

  foo () {

    return 'bar'

  }})


other.js


// getApp 也是全局函數(shù),可以在任意地方調(diào)用,用于獲取全局應(yīng)用程序?qū)嵗龑?duì)象var app = getApp()console.log(app.data1)console.log(app.data2)console.log(app.foo())


頁(yè)面邏輯[page-name].js


[page-name].js是一個(gè)頁(yè)面的重要組成部分,用于創(chuàng)建頁(yè)面對(duì)象


// 獲取全局應(yīng)用程序?qū)ο骳onst app = getApp()// Page也是一個(gè)全局函數(shù),用來創(chuàng)建頁(yè)面對(duì)象Page({

  // ========== 頁(yè)面數(shù)據(jù)對(duì)象(可以暴露到視圖中,完成數(shù)據(jù)綁定) ==========

  data: { ... },


  // ========== 頁(yè)面方法(可以用于抽象一些公共的行為,例如加載數(shù)據(jù),也可以用于定義事件處理函數(shù)) ==========

  method1 (p1, p2) { ... },

  method2 (p1, p2) { ... },


  // ========== 生命周期方法 ==========

  // 頁(yè)面加載觸發(fā)

  onLoad () { ... }

  ...})


在應(yīng)用程序執(zhí)行到當(dāng)前頁(yè)面時(shí),會(huì)執(zhí)行當(dāng)前頁(yè)面下對(duì)應(yīng)的[page-name].js文件。


在[page-name].js中通過調(diào)用全局Page([option])方法創(chuàng)建一個(gè)頁(yè)面實(shí)例。


Page([option])方法[option]參數(shù)說明



視圖層分析


[page-name].wxml頁(yè)面結(jié)構(gòu)


WXML(WeiXin Markup Language)是MINA框架設(shè)計(jì)的一套標(biāo)簽語(yǔ)言,基于XML。


結(jié)合一些基礎(chǔ)組件、事件系統(tǒng)、模板數(shù)據(jù)綁定,可以構(gòu)建出頁(yè)面的結(jié)構(gòu)。


簡(jiǎn)單來說:wxml ≈ xml + 事件系統(tǒng) + 模板引擎


例如:


// jsPage({

  data: {

    todos: [      { text: 'JavaScript', completed: false },

      { text: 'JavaScript+', completed: false },

      { text: 'JavaScript++', completed: false }

    ]  },

  completed (e) { ... }})


 

   

      {{ item.text }}

     

   

 


[page-name].wxss頁(yè)面樣式


WXSS(WeiXin Style Sheets)是MINA框架設(shè)計(jì)的一套標(biāo)簽語(yǔ)言,基于XML。

WXSS用來決定了在WXML中定義的組件應(yīng)該怎么顯示。


為了適應(yīng)廣大的前端開發(fā)者,我們的WXSS具有CSS大部分特性。 同時(shí)為了更適合開發(fā)微信小程序,我們對(duì)CSS進(jìn)行了擴(kuò)充以及修改。


與CSS相比我們擴(kuò)展的特性有:


  • 尺寸單位


  • 樣式導(dǎo)入(CSS也有)


尺寸單位


rpx(responsive pixel): 可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)。規(guī)定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個(gè)物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。


rem(root em): 規(guī)定屏幕寬度為20rem;1rem = (750/20)rpx 。




  • 建議: 開發(fā)微信小程序時(shí)設(shè)計(jì)師可以用 iPhone6 作為視覺稿的標(biāo)準(zhǔn)。


  • 注意: 在較小的屏幕上不可避免的會(huì)有一些毛刺,請(qǐng)?jiān)陂_發(fā)時(shí)盡量避免這種情況。


樣式導(dǎo)入


使用@import語(yǔ)句可以導(dǎo)入外聯(lián)樣式表,@import后跟需要導(dǎo)入的外聯(lián)樣式表的相對(duì)路徑,用;表示語(yǔ)句結(jié)束。


@import 'common.wxss';text {

  background-color: #ff0;}


選擇器


目前只支持如下選擇器




全局樣式與局部樣式


定義在app.wxss中的樣式為全局樣式,作用于每一個(gè)頁(yè)面。在[page-name].wxss文件中定義的樣式為局部樣式,只作用在對(duì)應(yīng)的頁(yè)面,并會(huì)覆蓋app.wxss中相同的選擇器。


關(guān)注「DotNet」 

看更多精選 .Net 技術(shù)文章

↓↓↓


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品免费精品一区二区| 欧美日本道一区二区三区| 午夜国产成人福利视频| 91爽人人爽人人插人人爽| 欧美人与动牲交a精品| 午夜小视频成人免费看| 久久99亚洲小姐精品综合 | 国产中文字幕一区二区| 五月激情综合在线视频| 日韩一区二区三区在线欧洲| 日韩精品一区二区三区射精| 免费午夜福利不卡片在线 视频| 亚洲综合伊人五月天中文| 亚洲少妇一区二区三区懂色| 日本精品中文字幕人妻| 好吊日成人免费视频公开| 91精品国产综合久久精品| 99久久精品国产麻豆| 亚洲欧美日韩国产综合在线| 伊人久久青草地综合婷婷| 欧美精品激情视频一区| 亚洲欧美日韩综合在线成成| 一个人的久久精彩视频| 成年午夜在线免费视频| 91蜜臀精品一区二区三区| 亚洲夫妻性生活免费视频| 亚洲性生活一区二区三区| 中文字幕一区二区三区大片| 国产一区二区在线免费| 成人免费视频免费观看| 尤物天堂av一区二区| 人妻熟女欲求不满一区二区| 欧美一区二区三区99| 美国黑人一级黄色大片| 日韩无套内射免费精品| 午夜精品一区免费视频| 国产国产精品精品在线| 人妻偷人精品一区二区三区不卡| 亚洲精品国产美女久久久99| 国产精品内射婷婷一级二级| 又大又长又粗又黄国产|