亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

詳解微信小程序開發(項目從零開始)

2020-03-21 15:54:28
字體:
來源:轉載
供稿:網友

一、序

微信小程序,估計大家都不陌生,現在應用場景特別多。今天就系統的介紹一下小程序開發。注意,這里只從項目代碼上做解析,不涉及小程序如何申請、打包、發布的東西。(這些跟著微信官方文檔的流程走就好)。好了廢話不多說,看目錄。

注: 小程序是一套特殊的東西,融合了原生和web端。他是一個不完整的瀏覽器對象,所以很多DOM 、 BOM 的東西無法使用,但是他又通過微信APP實現了多線程。

二、如何創建小程序

很簡單,首先下載微信開發者工具,下載穩定版本的就好。 下載 然后,創建小程序,可以參考下述圖片:

微信小程序,小程序開發

微信小程序,小程序開發

微信小程序,小程序開發

注意正式的小程序需要審批,拿到正式的APPID,我們測試的或者暫時沒有的可點那個測試的appid,小程序模板選擇默認就好。按照這樣的流程走完,我們就創建完一個小程序了。

三、webstrom支持小程序開發

創建完小程序之后,我們先不著急開發。工欲善其事必先利其器,微信開發者工具有點卡,而且功能少,開發效率很低。所以我們還是改造自己的編譯器,這里只介紹2種方法。一是 hbuilderX,他有支持小程序的模塊,很小巧的一款編譯器; 二是 webstorm,我用的他,在這介紹一下配置的方法,其他的大家自行google吧。

1、支持wxml和wxss的文件類型,有語法高亮。 打開webstorm編譯器,依次點擊 文件 -- 設置 -- 編輯器 -- 文件類型 , 找到 html文件,添加 *.wxml; 找到Cascading style Sheet ,添加 *.wxss。就OK了

2、支持小程序代碼提醒。 下載 這個文件,然后,把他放到一個顯眼的地方; 然后, webstorm 點擊 文件 -- 導入設置 ,找到這個下載的文件,點擊確定即可。

以上就是webstorm支持小程序語法的操作。

四、基礎文件目錄詳解

微信小程序,小程序開發

然后解釋一下小程序的目錄結構。

project.config.json: 小程序的配置文件,包含項目打包配置、上傳代碼自動壓縮等等,是一些開發、打包之類的配置。

app.json: 當前項目的配置文件。包括項目的頁面引入、導航條顏色、導航條標題 等等,是項目具體到代碼開發上的配置。介紹幾個配置:

pages: 包含的頁面。每次新增頁面都得在這里引入,否則新頁面的json配置等無法生效。 注意pages中頁面先寫的先渲染,所以數組第一條也就是我們的首頁。

window: 配置所有頁面導航條字體、顏色、背景色等

app.js: 小程序入口文件。生成小程序實例,App({}), 通常在這獲取用戶信息、授權信息、定義全局變量等。

app.wxss: 小程序全局 style 文件。對整個項目頁面生效。通常規定項目的 字體、基礎顏色,定義一些公共樣式。

utils: 工具函數目錄。通常用來放一些公共的js方法。比如封裝的request請求,一些別的處理數據什么的方法。

pages: 小程序的頁面目錄。所有的小程序頁面,都寫在這里面。

五、完善項目目錄

上邊大致解釋了一下小程序的基礎文件,現在按照常見的規范完善一下項目目錄,這里面包含一些個人見解,有需要的參考即可。先看一下結果:

微信小程序,小程序開發

現在解釋一下這些目錄:

components: 我們封裝的小程序可復用組件。

constants: 一些項目中的常亮。

image: 用到的圖片。

services: 用到的所有接口目錄

大致就新建了這幾個,如果有別的需求,根據自己的情況增加。

六、基礎語法詳解

現在大致解釋一下小程序的語法。首先, 創建新頁面,默認都創建 *.wxml *.wxss *.js *.json 和我們平時寫的代碼差不多,都是html js css,多了個json配置文件

*.json:常用的屬性有2大塊,navigationBarTitleText 相關的設置頂部標題的,usingComponents 引用的組件

*.js:getApp() 獲取小程序實例,拿全局變量等; Page({}) 創建頁面; data 當前頁面的變量;onLoad 生命周期,頁面加載完畢。

*.wxml:注意,小程序支持的標簽很少,像 span 是支持的,div不支持,一般用view代替塊級,span、text 代替行級。

*.wxss:大部分css選擇器不支持,支持的好像才5個,想支持less等得自己配置   

// json文件{ "navigationBarBackgroundColor": "#fff", "navigationBarTextStyle": "black", "navigationBarTitleText":"我的", "usingComponents": { "menu": "/components/menu/index" }}// js文件const app = getApp()Page({ data: {},  onLoad: function () {},})

七、實現頁面跳轉

和通常的web開發一樣,小程序頁面跳轉頁分2中,wxml中的vavigator標簽,以及js的navigator相關的api。路由跳轉的方法有好幾個,這里不一一贅述了,常用的直接跳轉

wx.navigateTo,重定向 wx.redirectTo等等,具體的請看官方文檔。這里強調一下路由傳參,很簡單:
1、少量數據。直接問號傳參。然后在目標頁面的onLoad方法中通過options參數接收。
2、大量數據。直接塞到全局變量里面。

// wxml跳轉頁面<navigator url="/pages/my{{item.path}}" class="navigator">  <image class="imgIcon" src="{{item.icon}}"></image>  <view class="navigator-text" data-id="{{item.key}}" bindtap="handleMenuTap">{{item.name}}</view> </navigator>//js跳轉頁面wx.navigateTo({  url: `/pages/my/appointDetail/index?_id=${this.data.marker.id}` })//路由傳參如何接收 onLoad: function (options) {   console.log(options) },

八、wx.request 的封裝

在utils中新建request.js,簡單封裝了一下,一些數據要全局配置的都引進來,然后做了些錯誤的統一處理,沒什么難度,不過要特別注意一下cookie的攜帶。具體代碼如下:

const app = getApp()export default function request(url, options = {}) { return new Promise(function (resolve, reject) { wx.request({  url: `${app.origin}${url}`,  method: 'GET',  ...options,  data: options.data,  header: {  'content-type': 'application/json',  'cookie': wx.getStorageSync("cookie")  },  success: function (res) {  //重新授權登錄  if (res.statusCode === 401){   wx.redirectTo({url: '/pages/login/index'})   return  }else if (res.statusCode !== 200) {   reject({ error: '服務器忙,請稍后重試', code: 500 });   return  } else {   if (url === '/api/cdz/user/weixin/login') {   const cookie = res.header["set-cookie"] || res.header["Set-Cookie"];           if (cookie) wx.setStorageSync("cookie", cookie);   }   resolve(res.data);  }  },  fail: function (res) {  // fail調用接口失敗  if (url === '/api/cdz/user/weixin/login') {   const cookie = res.header["set-cookie"] || res.header["Set-Cookie"];   if (cookie) wx.setStorageSync("cookie", cookie);  }  reject({ error: '網絡錯誤', code: 0 });  } }) })}

然后我們使用的時候直接使用封裝好的request方法,這樣所有的api就封裝成一個個函數。我們在頁面中直接import引入調用即可。

import request from "../utils/request";import { stringify } from "../utils/util"export function testPost(data) { return request(`/api/test/post`, { method: 'PUT', data, })}export function testGet(data) { return request(`/api/test/get`)}

九、使用 npm (引入 weui、moment等插件)

因為小程序使用的是不完整的瀏覽器對象,所以很多js包都是不好使的,比如jquery之類的。所以npm基本是廢了,能用的依賴包很少,具體哪些能用得自己發掘了。這里還是要介紹一下小程序如何使用npm,畢竟有些包還是要用的。

1、打開 微信開發者工具 -- 點擊 詳情 -- 勾選 使用npm模塊

2、打開命令行,進入項目的根目錄下, npm init 初始化npm

3、npm i 。。。安裝你需要的依賴

4、打開 微信開發者工具 -- 點擊 工具 -- 點擊 構建npm。 此時小程序會將 node_modules 文件編譯打包,生成新目錄 miniprogram_npm ,

5、在需要用到的頁面的js文件中,const moment= require('moment') 引入,直接使用即可

6、最后記得忽略文件。新建 .gitignore 文件,node_modules 、 package_lock.json 等文件不需要上傳,最好只保留小程序的npm構建包,用什么依賴也是的那個下載。這個到不是必須的

ps: 特殊注意一下weui的引入,這個ui庫是純css的,沒有js文件,所以他沒法用npm引入,而是直接下載文件,我直接丟到根目錄下,然后在 app.wxss 文件的開頭引入

@import 'weui.wxss';,這樣使用的

十、封裝微信小程序可復用組件

現在篇幅有點太長了,這個另寫一篇,有需要的可以去看。

十一、總結

以上就是我開發小程序的一些經驗和總結,希望能幫到你。另外,整套程序的骨架(業務代碼刪掉了)我會上傳到github,下載 有需要的可以去下載,記得點個贊,哈哈。

最后,我會另寫一篇博客,寫一下 如何封裝小程序 組件,并附上 我開發小程序遇到的坑,以及對應的解決方法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线精品视频视频中文字幕| 亚洲日本欧美中文幕| 国产香蕉97碰碰久久人人| 亚洲肉体裸体xxxx137| 亚洲a一级视频| 亚洲偷欧美偷国内偷| 午夜精品视频在线| 亚洲性夜色噜噜噜7777| 亚洲免费一级电影| 国产精品久久久久久久一区探花| 日本精品久久久久影院| 国产精品一区专区欧美日韩| 国产精品自产拍在线观看| 97精品伊人久久久大香线蕉| 精品久久久久人成| 久久久国产一区二区| 国产一区二区三区精品久久久| 国产精品福利网站| 欧美日韩免费在线| 日韩av在线一区| 日韩精品999| 一区二区三区回区在观看免费视频| 日本精品性网站在线观看| 91牛牛免费视频| 国产精品99免视看9| 亚洲精品日韩激情在线电影| 国产免费成人av| 亚洲国产天堂网精品网站| 欧美巨乳美女视频| 日韩精品视频在线| 亚洲精品一区二三区不卡| 亚洲国产精品系列| 日韩欧美中文在线| 欧美午夜精品久久久久久浪潮| 亚洲人成毛片在线播放| 久久久久久久91| 亚洲国产另类 国产精品国产免费| 欧美一区二区大胆人体摄影专业网站| 欧美极度另类性三渗透| 全色精品综合影院| 最近2019中文免费高清视频观看www99| 欧美成人免费视频| 亚洲欧美在线播放| 亚洲第一级黄色片| 亚洲最新在线视频| 日韩成人在线播放| 国产香蕉97碰碰久久人人| 日韩精品电影网| 国产亚洲激情在线| 亚洲精美色品网站| 久久久噜噜噜久久| 欧美日韩精品国产| 久久在线免费观看视频| 成人做爰www免费看视频网站| 欧美激情精品久久久久久变态| 久久在精品线影院精品国产| 国产精品久久久久久影视| 亚洲自拍av在线| 中文字幕在线观看亚洲| 国产精品海角社区在线观看| 亚洲人成网站在线播| 中文字幕精品一区久久久久| 久久手机免费视频| 亚洲男女性事视频| 亚洲精品美女视频| 欧美激情网友自拍| 国产不卡一区二区在线播放| 日韩av日韩在线观看| 欧美午夜性色大片在线观看| 欧美国产日韩xxxxx| 日韩欧美国产成人| 亚洲欧美国产一区二区三区| 高清欧美性猛交xxxx黑人猛交| 亚洲最新av在线| 午夜精品福利电影| 久久久免费观看| 91香蕉嫩草神马影院在线观看| 亚洲第一免费播放区| 亚洲最大福利视频网站| 亚洲精品国产精品久久清纯直播| 亚洲国产精品一区二区久| 丝袜美腿亚洲一区二区| 性欧美长视频免费观看不卡| 亚洲欧美福利视频| 一本色道久久综合狠狠躁篇怎么玩| 国产成人精彩在线视频九色| 国产精品国产三级国产专播精品人| 久久精品成人一区二区三区| 国产视频久久久久| 97超级碰碰碰久久久| 精品av在线播放| 亚洲视频在线观看视频| 精品国产乱码久久久久酒店| 欧美孕妇性xx| 在线看福利67194| 亚洲人成伊人成综合网久久久| 日韩亚洲第一页| 北条麻妃一区二区三区中文字幕| 精品欧美激情精品一区| 欧美在线视频导航| 国产成人久久久精品一区| 久久6免费高清热精品| 一夜七次郎国产精品亚洲| 欧美亚洲第一区| 亚洲精品国产综合久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久国产色av| 日本高清不卡的在线| 在线看日韩欧美| 成人福利在线视频| 国产成人综合亚洲| 日韩精品在线观看一区| 久热精品在线视频| 91精品国产成人www| 国产精品爱久久久久久久| 国产在线视频一区| 午夜精品久久久久久久久久久久| 日韩精品丝袜在线| 国外成人在线视频| 91美女片黄在线观| 日韩经典中文字幕在线观看| 在线播放国产一区二区三区| 日韩美女视频免费看| 欧美视频在线视频| 日韩精品在线视频美女| 欧美最猛性xxxx| 欧美日韩中文在线| 久久精品中文字幕一区| 精品国产欧美一区二区五十路| 国产精品久久久久9999| 亚洲精品成人久久电影| 欧美香蕉大胸在线视频观看| 亚洲精品久久久久中文字幕欢迎你| 午夜精品视频在线| 亚洲成人av片| 国产精品免费久久久久影院| 97国产suv精品一区二区62| 亚洲国内精品在线| 亚洲有声小说3d| 韩日精品中文字幕| 亚洲国产精品推荐| 亚洲国产高清福利视频| 国产精品揄拍500视频| 日韩欧美在线看| 色小说视频一区| 欧美日韩在线视频一区| 亚洲精品久久久久久久久久久久| 成人国产精品一区| 国产精品入口免费视频一| 国产精品69久久| 国产97色在线|日韩| 亚洲精品一区二区在线| 亚洲第一页在线| 川上优av一区二区线观看| 欧洲精品久久久| 亚洲精品97久久| 亚洲色图17p| 欧美亚洲国产另类| 91美女片黄在线观看游戏| 欧美日韩美女在线观看| 精品无人区乱码1区2区3区在线| 欧美第一淫aaasss性| 91精品久久久久久久久久另类| 久久全国免费视频|