国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

微信小程序開發(fā)的基本流程步驟

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:01:28
文檔

微信小程序開發(fā)的基本流程步驟

微信小程序開發(fā)的基本流程步驟:一,微信小程序簡介 1,微信小程序簡稱小程序,張小龍在微信公開課 Pro 上發(fā)布的小程序正式上線,時間是2017年1月9日。 2,微信小程序這個詞可以分解為微信和小程序兩部分 (1),其中微信可以理解為微信中的,指的是小程序的執(zhí)行環(huán)境;當(dāng)然微信在
推薦度:
導(dǎo)讀微信小程序開發(fā)的基本流程步驟:一,微信小程序簡介 1,微信小程序簡稱小程序,張小龍在微信公開課 Pro 上發(fā)布的小程序正式上線,時間是2017年1月9日。 2,微信小程序這個詞可以分解為微信和小程序兩部分 (1),其中微信可以理解為微信中的,指的是小程序的執(zhí)行環(huán)境;當(dāng)然微信在

一,微信小程序簡介

1,微信小程序簡稱小程序,張小龍在微信公開課 Pro 上發(fā)布的小程序正式上線,時間是2017年1月9日。

2,微信小程序這個詞可以分解為“微信”和“小程序”兩部分

(1),其中“微信”可以理解為“微信中的”,指的是小程序的執(zhí)行環(huán)境;當(dāng)然微信在提供執(zhí)行環(huán)境的同時也延長了用戶使用微信的時間。

(2),“小程序”是說它首先是程序,然后具備輕便的特征。小程序并不像其他應(yīng)用那樣,它不需要安裝,而是通過掃描二維碼等打開后直接執(zhí)行;用完以后也不需要卸載。這就是所謂用完即走的原則。

3,微信小程序,很多類似形態(tài)的應(yīng)用都采用類似的架構(gòu):

  • 使用 JSON 技術(shù)來表現(xiàn)應(yīng)用的配置信息。包含應(yīng)用的基本信息,頁面配置和路由,應(yīng)用全體的信息等。
  • 使用經(jīng)過定制 CSS+XML 技術(shù)來實現(xiàn)視圖層的描述。畫面元素,例如列表、按鈕、文本框、選擇框等都通過 XML 語言來描述,遵從 XML 語法,對于頁面的共同風(fēng)格,使用 CSS 進(jìn)行定義。
  • 使用 JavaScript 語言來實現(xiàn)邏輯層結(jié)構(gòu)。包括用戶操作的處理,系統(tǒng) API 的調(diào)用等。
  • 架構(gòu)在視圖層和邏輯層之間提供數(shù)據(jù)和事件傳輸功能,從而盡量減少難度。由于類似應(yīng)有都屬于輕應(yīng)用,所以提供的功能都比較單一。
  • 4,JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它基于 ECMAScript(W3C 制定的 JavaScript 規(guī)范)的一個子集,采用完全獨(dú)立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。

    5,XML(Extensible Markup Language),中文名為可擴(kuò)展標(biāo)記語言,標(biāo)準(zhǔn)通用標(biāo)記語言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。

    在電子計算機(jī)中,標(biāo)記指計算機(jī)所能理解的信息符號,通過此種標(biāo)記,計算機(jī)之間可以處理包含各種的信息,比如文章等。它可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言。它非常適合萬維網(wǎng)傳輸,提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。是 Internet 環(huán)境中跨平臺的、依賴于內(nèi)容的技術(shù),也是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具。早在1998年,W3C 就發(fā)布了 XML1.0 規(guī)范,使用它來簡化 Internet 的文檔信息傳輸。

    6,CSS層疊樣式表(英文全稱:Cascading Style Sheets)是一種用來表現(xiàn) HTML 或 XML 等文件樣式的計算機(jī)語言。CSS 不僅可以靜態(tài)地修飾網(wǎng)頁,還可以配合各種腳本語言動態(tài)地對網(wǎng)頁各元素進(jìn)行格式化。CSS 能夠?qū)W(wǎng)頁中元素位置的排版進(jìn)行像素級精確控制,支持幾乎所有的字體字號樣式,擁有對網(wǎng)頁對象和模型樣式編輯的能力。

    7,JavaScript 一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型。它的解釋器被稱為 JavaScript 引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言,最早是在 HTML 網(wǎng)頁上使用,用來給 HTML 網(wǎng)頁增加動態(tài)功能。

    二,注冊微信小程序

    在創(chuàng)建自己的微信小程序之前,首先需要注冊小程序賬號,有如下賬號類型:

    具體的注冊流程,可以參考官方的簡易教程

    三,安裝工具,創(chuàng)建項目

    第一步:下載微信小程序開發(fā)者工具并安裝,下載路徑:

    https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html

    進(jìn)到下載界面后,根據(jù)自己的操作系統(tǒng)選擇相應(yīng)的鏈接進(jìn)行下載,下載完成后進(jìn)行安裝。

    第二步:安裝登錄工具

    開發(fā)者工具安裝完成后我們就可以將其打開,初次打開會需要用微信掃碼登錄,如下圖,用手機(jī)微信掃一掃后確認(rèn)登錄就可以了。

    第三步:選擇一個項目類型

    登錄成功后,如果是第一次使用該工具會彈出選擇項目類型的窗口,如下圖:

    第四步:創(chuàng)建一個項目

    選擇項目類型成功后,會彈出創(chuàng)建項目的窗口,如下圖:

    ​ 在創(chuàng)建過程中,如果選擇的本地文件夾是個空文件夾會出來一個勾選項“建立云開發(fā)快速啟動模版”,為方便初學(xué)者了解微信小程序的基本代碼結(jié)構(gòu),請勾選此項,勾選后,開發(fā)者工具會幫助我們在開發(fā)目錄里生成一個簡單的 demo,如下圖:

    四,項目代碼結(jié)構(gòu)說明與開發(fā)

    4.1,項目代碼結(jié)構(gòu)

    點擊開發(fā)者工具上側(cè)導(dǎo)航的“編輯器”,我們可以看到這個項目,已經(jīng)初始化并包含了一些簡單的代碼文件。最關(guān)鍵也是必不可少的,是 app.js、app.json、app.wxss 這三個。其中,.js后綴的是腳本文件,.json后綴的文件是配置文件,.wxss后綴的是樣式表文件。微信小程序會讀取這些文件,并生成小程序?qū)嵗?/p>

    下面我們簡單了解這三個文件的功能,方便修改以及從頭開發(fā)自己的微信小程序。

    ​ 1、app.js是小程序的腳本代碼。我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)、聲明全局變量。調(diào)用框架提供的豐富的 API,如本例的同步存儲及同步讀取本地數(shù)據(jù)。

    2、​ app.json 是對整個小程序的全局配置。我們可以在這個文件中配置小程序是由哪些頁面組成,配置小程序的窗口背景色,配置導(dǎo)航條樣式,配置默認(rèn)標(biāo)題。注意該文件不可添加任何注釋。

    3、app.wxss 是整個小程序的公共樣式表。我們可以在頁面組件的 class 屬性上直接使用 app.wxss 中聲明的樣式規(guī)則。

    我們注意到,在實例程序的代碼中還有2個文件夾,一個是pages,一個是style,其中style是放通用樣式的一個文件夾,pages是存放所有頁面的文件夾。我們著重講一下這個pages.

    4.2,小程序頁面文件構(gòu)成

    在這個示例中,我們有七個頁面,index 頁面,即歡迎頁,他們都在 pages 目錄下。微信小程序中的每一個頁面的【路徑+頁面名】都需要寫在 app.json 的 pages 中,且 pages 中的第一個頁面是小程序的首頁。

    每一個小程序頁面是由同路徑下同名的四個不同后綴文件的組成,如:index.js、index.wxml、index.wxss、index.json。.js后綴的文件是腳本文件,.json后綴的文件是配置文件,.wxss后綴的是樣式表文件,.wxml后綴的文件是頁面結(jié)構(gòu)文件。

    ​ index.wxml 是頁面的結(jié)構(gòu)文件:

    <!--index.wxml-->
    <view class="container">
    
     <!-- 用戶 openid -->
     <view class="userinfo">
     <button 
     open-type="getUserInfo" 
     bindgetuserinfo="onGetUserInfo"
     class="userinfo-avatar"
     style="background-image: url({{avatarUrl}})"
     ></button>
     <view>
     <text>jackson影琪</text>
    </view> 
    </view> 
    
    <view class="text-title">
     <text>Hello world</text>
    </view> 
    </view>

    本例中使用了<view/><button/><text/>來搭建頁面結(jié)構(gòu),綁定數(shù)據(jù)和交互處理函數(shù)。

    ​ index.js 是頁面的腳本文件,在這個文件中我們可以監(jiān)聽并處理頁面的生命周期函數(shù)、獲取小程序?qū)嵗暶鞑⑻幚頂?shù)據(jù),響應(yīng)頁面交互事件等。

    //index.js
    const app = getApp()
    
    Page({
     data: {
     avatarUrl: './user-unlogin.png',
     userInfo: {},
     logged: false,
     takeSession: false,
     requestResult: ''
     },
    
     onLoad: function() {
     if (!wx.cloud) {
     wx.redirectTo({
     url: '../chooseLib/chooseLib',
     })
     return
     }
    
     // 獲取用戶信息
     wx.getSetting({
     success: res => {
     if (res.authSetting['scope.userInfo']) {
     // 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱,不會彈框
     wx.getUserInfo({
     success: res => {
     this.setData({
     avatarUrl: res.userInfo.avatarUrl,
     userInfo: res.userInfo
     })
     }
     })
     }
     }
     })
     },
    
     onGetUserInfo: function(e) {
     if (!this.logged && e.detail.userInfo) {
     this.setData({
     logged: true,
     avatarUrl: e.detail.userInfo.avatarUrl,
     userInfo: e.detail.userInfo
     })
     }
     },
    
     onGetOpenid: function() {
     // 調(diào)用云函數(shù)
     wx.cloud.callFunction({
     name: 'login',
     data: {},
     success: res => {
     console.log('[云函數(shù)] [login] user openid: ', res.result.openid)
     app.globalData.openid = res.result.openid
     wx.navigateTo({
     url: '../userConsole/userConsole',
     })
     },
     fail: err => {
     console.error('[云函數(shù)] [login] 調(diào)用失敗', err)
     wx.navigateTo({
     url: '../deployFunctions/deployFunctions',
     })
     }
     })
     },
    
     // 上傳圖片
     doUpload: function () {
     // 選擇圖片
     wx.chooseImage({
     count: 1,
     sizeType: ['compressed'],
     sourceType: ['album', 'camera'],
     success: function (res) {
    
     wx.showLoading({
     title: '上傳中',
     })
    
     const filePath = res.tempFilePaths[0]
     
     // 上傳圖片
     const cloudPath = 'my-image' + filePath.match(/\.[^.]+?$/)[0]
     wx.cloud.uploadFile({
     cloudPath,
     filePath,
     success: res => {
     console.log('[上傳文件] 成功:', res)
    
     app.globalData.fileID = res.fileID
     app.globalData.cloudPath = cloudPath
     app.globalData.imagePath = filePath
     
     wx.navigateTo({
     url: '../storageConsole/storageConsole'
     })
     },
     fail: e => {
     console.error('[上傳文件] 失敗:', e)
     wx.showToast({
     icon: 'none',
     title: '上傳失敗',
     })
     },
     complete: () => {
     wx.hideLoading()
     }
     })
    
     },
     fail: e => {
     console.error(e)
     }
     })
     },
    
    })

    index.wxss 是頁面的樣式表:

    /**index.wxss**/
    
    page {
     background: #f6f6f6;
     display: flex;
     flex-direction: column;
     justify-content: center;
    }
    .userinfo, .uploader, .tunnel {
     margin-top: 40rpx;
     height: 140rpx;
     width: 100%;
     background: #fff;
     border: 1px solid rgba(0, 0, 0, 0.1);
     border-left: none;
     border-right: none;
     display: flex;
     flex-direction: row;
     align-items: center;
     transition: all 300ms ease;
    }
    
    .userinfo-avatar {
     width: 100rpx;
     height: 100rpx;
     margin: 20rpx;
     border-radius: 50%;
     background-size: cover;
     background-color: white;
    }
    
    .userinfo-avatar:after {
     border: none;
    }
    
    .userinfo-nickname {
     font-size: 32rpx;
     color: #007aff;
     background-color: white;
     background-size: cover;
    }
    
    .userinfo-nickname::after {
     border: none;
    }
    
    .uploader, .tunnel {
     height: auto;
     padding: 0 0 0 40rpx;
     flex-direction: column;
     align-items: flex-start;
     box-sizing: border-box;
    }
    
    .uploader-text, .tunnel-text {
     width: 100%;
     line-height: 52px;
     font-size: 34rpx;
     color: #007aff;
    }
    
    .uploader-container {
     width: 100%;
     height: 400rpx;
     padding: 20rpx 20rpx 20rpx 0;
     display: flex;
     align-content: center;
     justify-content: center;
     box-sizing: border-box;
     border-top: 1px solid rgba(0, 0, 0, 0.1);
    }
    
    .uploader-image {
     width: 100%;
     height: 360rpx;
    }
    
    .tunnel {
     padding: 0 0 0 40rpx;
    }
    
    .tunnel-text {
     position: relative;
     color: #222;
     display: flex;
     flex-direction: row;
     align-content: center;
     justify-content: space-between;
     box-sizing: border-box;
     border-top: 1px solid rgba(0, 0, 0, 0.1);
    }
    
    .tunnel-text:first-child {
     border-top: none;
    }
    
    .tunnel-switch {
     position: absolute;
     right: 20rpx;
     top: -2rpx;
    }
    
    .disable {
     color: #888;
    }
    
    .service {
     position: fixed;
     right: 40rpx;
     bottom: 40rpx;
     width: 140rpx;
     height: 140rpx;
     border-radius: 50%;
     background: linear-gradient(#007aff, #0063ce);
     box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
     display: flex;
     align-content: center;
     justify-content: center;
     transition: all 300ms ease;
    }
    
    .service-button {
     position: absolute;
     top: 40rpx;
    }
    
    .service:active {
     box-shadow: none;
    }
    
    .request-text {
     padding: 20rpx 0;
     font-size: 24rpx;
     line-height: 36rpx;
     word-break: break-all;
    }
    .text-title{
    margin-top: 50%;
    }
    .text-title text{
     font-size: 96rpx;
     font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    }

    頁面的樣式表是非必要的。當(dāng)有頁面樣式表時,頁面的樣式表中的樣式規(guī)則會層疊覆蓋 app.wxss 中的樣式規(guī)則。如果不指定頁面的樣式表,也可以在頁面的結(jié)構(gòu)文件中直接使用 app.wxss 中指定的樣式規(guī)則。

    ​ index.json 是頁面的配置文件:

    ​ 頁面的配置文件是非必要的。當(dāng)有頁面的配置文件時,配置項在該頁面會覆蓋 app.json 的 window 中相同的配置項。如果沒有指定的頁面配置文件,則在該頁面直接使用 app.json 中的默認(rèn)配置。

    {
     "pages": [
     "pages/index/index",
     "pages/userConsole/userConsole",
     "pages/storageConsole/storageConsole",
     "pages/databaseGuide/databaseGuide",
     "pages/addFunction/addFunction",
     "pages/deployFunctions/deployFunctions",
     "pages/chooseLib/chooseLib"
     ],
     "window": {
     "backgroundColor": "#F6F6F6",
     "backgroundTextStyle": "light",
     "navigationBarBackgroundColor": "#F6F6F6",
     "navigationBarTitleText": "jackson影琪",
     "navigationBarTextStyle": "black"
     }
    }

    運(yùn)行結(jié)果如下:

    手機(jī)預(yù)覽

    ​ 開發(fā)者工具上側(cè)菜單欄,點擊"預(yù)覽",掃碼后即可在微信客戶端中體驗。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    微信小程序開發(fā)的基本流程步驟

    微信小程序開發(fā)的基本流程步驟:一,微信小程序簡介 1,微信小程序簡稱小程序,張小龍在微信公開課 Pro 上發(fā)布的小程序正式上線,時間是2017年1月9日。 2,微信小程序這個詞可以分解為微信和小程序兩部分 (1),其中微信可以理解為微信中的,指的是小程序的執(zhí)行環(huán)境;當(dāng)然微信在
    推薦度:
    標(biāo)簽: 微信 小程序 流程
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 成人在线日韩 | 在线视频区| 人禽性动交异族另类 | 久久久亚洲欧美综合 | 大陆一级毛片 | 久久精品一区二区三区不卡牛牛 | 不卡国产视频 | 国产91在线播放中文 | 久久精品视频一区二区三区 | 欧美叉叉| 国产高清视频免费在线观看 | 福利视频一区二区牛牛 | 欧美 日韩 国产 在线 | 国产精品亚洲综合 | 国产精彩视频在线观看 | 国产成人青青热久免费精品 | 欧美日韩国产另类一区二区三区 | 国产亚洲欧美精品久久久 | 国产八区| 精品国产一区二区三区免费看 | 欧美十区| 亚洲欧洲国产成人综合一本 | 国产成人高清亚洲一区久久 | 亚洲国产精品视频 | 啪啪网站免费观看 | 国产在线视频资源 | 成人a毛片一级 | 久久久久亚洲精品成人网小说 | 欧美精品一区二区三区久久 | 欧美另类网站 | 国产a久久精品一区二区三区 | 国产一区在线播放 | 欧美成人伊人久久综合网 | 亚洲国产精品久久久久 | 国产在线视频一区二区三区 | 亚洲精品国产精品精 | 国产精品亚洲综合一区 | 亚洲另类第一页 | 日本美女逼逼 | 精品国产一区二区在线观看 | 国产免费一区二区 |