2021-11-03

小程序概述

微信小程序 小程序的一种 英文名 Wechat Mini Program 是一种不需要安装即可使用的应用 它实现了应用"触手可及"的梦想 。用户扫一扫 或者 搜一下 即可打开应用。

内置于微信的类似于app的小型应用

小程序的优缺点

优点1 用户体验好 不用下载安装 即开即用

优点2 上手容易 html css js

优点3 开发成本低 (资金 沟通 时间)

优点4 微信用户流量大,方便推广

缺点1 项目包大小有限制(默认不超过2M 使用分包技术 可达到 20M)

缺点2  对个人开发,功能限制 (交互 微信支付 直播)

缺点3 不能及时发布上线 微信团队人工审核(1-7个工作日)

缺点4 不能直接分享到朋友圈( 目前测试版本可以分享)

1.小程序账号注册流程https://developers.weixin.qq.com/miniprogram/introduction/

2.小程序信息完善

1.资料完善 小程序名称和头像

2.开发管理: 开发设置 appid,appserect,服务器域名配置

3.版本管理 开发 审核 线上

4.成员管理 管理员 项目成员 体验成员

五、微信开发者工具及工程创建

1.工具下载安装

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

2.工程创建

点击 +

选择空目录 填写项目名称

填写appid----去小程序后台 开发设置里复制即可(或者使用测试号,测试号功能受限制)

选择不使用云开发

工程目录

三个主体文件(作用于所有页面----不能修改名称)

app.json 小程序页面路径 全局窗口的表现 tabbar

app.js 实例注册App() 全局的逻辑

app.wxss 全局的样式

四个页面文件--只针对一个页面

xx.wxml 页面结构

xx.json 页面的配置  当前窗口的表现

xx.js 页面的逻辑文件(页面注册Page() data 函数)

xx.wxss 页面的样式

utils.js 模块文件--->时间格式化

project.config,json 项目配置文件(appid 主题色, 对编辑器的设置--代码是否转es5)

sitemap.json  站点地图文件  配置小程序页面在微信内部索引规则

小程序配置

1.全局配置

app.json

https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html

小程序根目录下的 app.json 文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。

tips:

1)不能加注释

2)必须加双引号,不能单引号

3)页面路径前面不能加字符  ./  /

4)配置项最后一项不能加逗号,中间必须加逗号

代码示例

(1) pages

负责页面路径的配置

tisp:

1) 页面路径前不能加字符 ./ 

2) 未指定 entrypagepath 时 数组的第一项代表小程序的初始页面(首页)

"pages": [

"pages/index/index",

"pages/logs/logs",

"pages/list/list",

"pages/my/my"

],

"entryPagePath": "pages/logs/logs",

2) window 

负责页面窗口表现(导航条 窗口背景 下拉刷新 上拉触底的距离

"window": {

"navigationBarBackgroundColor": "#f00", //16进制

"navigationBarTitleText": "web",

"navigationBarTextStyle": "white",

//black white "navigationStyle": "custom",

//default "backgroundColor": "#f00",//16进制

"enablePullDownRefresh": true,

"backgroundTextStyle": "light",//dark 或者loght

"onReachBottomDistance": 50

3)tabBar

指定tabbar的表现,以及tabbar对应的页面

tisp:

1)至少两项 最多 五项 

2) 图片不能使用网络图片 建议80*80 40kb以下

"tabBar": {

"list":[ { "pagePath": "pages/index/index",

"text": "首页",

"iconPath": "./tabs/index.png",

"selectedIconPath": "./tabs/indexFull.png" },

{ "pagePath": "pages/cart/cart",

"text": "购物车",

"iconPath": "./tabs/cart.png",

"selectedIconPath": "./tabs/cartFull.png" } ],

"color":"#333",

"selectedColor": "#f00",

"position": "bottom",

"borderStyle": "white" },

2.页面配置page.json

https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html

每一个小程序页面也可以使用同名 .json 文件来对本页面的窗口表现进行配置,页面中配置项会覆盖 app.json 的 window 中相同的配置项。    

{ "usingComponents": { },

// 全局的window 里边的属性 页面》全局

"navigationBarTitleText": "购物车",

"navigationBarBackgroundColor": "#f00" } 


小程序逻辑层

小程序开发框架的逻辑层使用 JavaScript 引擎为小程序提供开发者 JavaScript 代码的运行环境以及微信小程序的特有功能。

逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。

开发者写的所有代码最终将会打包成一份 JavaScript 文件,并在小程序启动的时候运行,直到小程序销毁。这一行为类似 ServiceWorker,所以逻辑层也称之为 App Service。

在 JavaScript 的基础上,我们增加了一些功能,以方便小程序的开发:

增加 App 和 Page 方法,进行程序注册页面注册

增加 getApp 和 getCurrentPages 方法,分别用来获取 App 实例和当前页面栈。

提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力。

提供模块化能力,每个页面有独立的作用域

注意:小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 window,document 等。

小程序注册App() ***

https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

在 `app.js` 中调用 `App` 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。

代码案例

// app.js

// 程序的注册

App({ // 初始化--只触发一次

onLaunch() { console.log('onlaunch'); },

// 切前台--重复触发

onShow() { console.log('onshow');

// fun() console.log(this.globalData); },

// 切后台--重复触发

onHide() { console.log('onhide'); },

onError(err) { // 错误日志 console.log(err); },

onPageNotFound() { // 重定向404 index console.log('onpagenotfound');

// 跳转q wx.redirectTo({ url: './pages/page404/page404', }) },

globalData: { userInfo: null, isLogin:false } })

在页面访问获取全局实例

页面.js

// 页面访问全局变量 getApp()

let app = getApp()

app.globalData.isLogin= true

console.log(app);


页面注册Page() ***

https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html

在页面对应的 js 文件中进行注册,指定页面的初始数据、生命周期回调、事件处理函数等。

示例代码

// pages/cart/cart.js

// 页面访问全局变量

let app = getApp()

app.globalData.isLogin = true

console.log(app);

// 注册页面

Page({

// 页面的初始数据

data: { msg:"没事干", arr:[] },

// 生命周期函数--监听页面加载,只加载一次

onLoad: function (options) { console.log('页面加载'); },

// 生命周期函数--监听页面初次渲染完成,只加载一次

onReady: function () { console.log('页面初次渲染完成'); },

//生命周期函数--监听页面显示

onShow: function () { console.log('页面显示');

// wx.redirectTo({ // url: '../page404/page404', // }) },

//生命周期函数--监听页面隐藏

onHide: function () { console.log('页面隐藏'); },

// 生命周期函数--监听页面卸载

onUnload: function () { console.log('页面卸载'); },

//页面相关事件处理函数--监听用户下拉动作 1.json允许下拉刷新 2.onPullDownRefresh

onPullDownRefresh: function () { console.log("onPullDownRefresh-重新请求"); },

//页面上拉触底事件的处理函数 onReachBottom: function () { console.log('触底了,页码+1,重新请求'); },

// 用户点击右上角分享 onShareAppMessage: function () { },

// 分享到朋友圈 onShareTimeline() { } })

data数据


// 页面的初始数据

    data: {

        msg:"没事干",

        arr:[]

    },

    // 生命周期函数--监听页面加载,只加载一次

    onLoad: function (options) {

        console.log('页面加载');

        // 获取data数据  vue:this.msg

        console.log(this.data.msg);

        // 设置data数据 vue:this.msg

        // 小程序1)处理数据  =赋值 只能修改js的值

        this.data.msg = "hahha"

        // 小程序2)同步视图 setData可以修改js,同步到视图层

        this.setData({

            msg:this.data.msg

        })

场景值

https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.htm

对用户进入小程序的方式的描述--(区分用户进入到小程序的方式)

获取场景值

// app.js

// 程序的注册

App({

// 程序的生命周期

// 程序的初始化 只执行一次

onLaunch(option){

// 1.在onLaunch生命周期获取场景值

console.log("onLaunch",option); },

// 程序运行在前台

onShow(option){

// 2.在onShow生命周期获取场景值

console.log("onShow",option);

if(option.scene == 1008)

{ console.log('执行 领取1000豆子 的操作'); }

// 3.获取onLunch启动时的参数

let scene = wx.getLaunchOptionsSync() console.log(scene); },

// 程序运行在后台 onHide(){ }, })

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容