MOOC微信小程序开发从入门到实践~笔记
MOOC微信小程序开发从入门到实践~笔记
1、图标网站【icon】www.iconfont.cn
2、新建项目是必须需要AppID
3、app.js是页面逻辑文件
app.json是页面全局配置文件(pages windows)
app.wss全局页面的样式
project config.json项目的配置文件
4、获取用户信息:wx.getUserInfo()
5、【tabBar】:如果小程序是一个多tab应用(客户端窗口的底部或顶部有tab栏可以切换页面),可以通过tabBar配置项指定tab切换时现实的对应页面
属性 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
color | HexColor | 是 | tab 上的文字默认颜色,仅支持十六进制颜色 | |
selectedColor | HexColor | 是 | tab 上的文字选中时的颜色,仅支持十六进制颜色 | |
backgroundColor | HexColor | 是 | ab 的背景色,仅支持十六进制颜色 | |
borderStyle | string | 否 | black | tabbar 上边框的颜色, 仅支持 black / white |
list | Array | 是 | tab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab | |
position | string | 否 | bottom | tabBar 的位置,仅支持 bottom / top |
其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。
tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
pagePath | string | 是 | 页面路径,必须在 pages 中先定义 |
text string | 是 | tab 上按钮文字 | |
iconPath | string | 否 | 图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon。 |
selectedIconPath | string | 否 | 选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon。 |
//在项目的app.json文件中输入:{"page":[],"windows":{},
"tabBar":{"list":["pagePath":"pages/index/index","text":"首页""iconPath":"image/first1.png""selectedIconPath":"images/first2.png"},{"pagePath":"pages/logs/logs","text":"日志"}],
}
·创建image文件夹,将图标下载进去
6、授权登录页面:
(1)使用wx.login()获取code
(2)通过wx.request()发送code,并访问后台(开发者服务器)
(3)微信后台使用登录凭证校验接口(appid+appsecret+code)实现导入接口服务
(4)接口返回session_key(小程序唯一标识) + openid等
(5)后台产生自定义登录状态,与openid,session_key关联
(6)后台返回小程序前端(自由登录状态)
(7)将返回的信息存进storage中,方便以后获取
7、同步缓存:处理完本方法才会继续执行
异步缓存: 不会阻塞当前的任务
【注:数据缓存上限为10MB】
8、一般将登录和注册相关的代码放在app.js中
9、点击“详情”,选择不校验合法域名
10、wx.showModal()模态对话框
11、相对路径:…/指的是当前文件所在上一级目录
./指的是当前目录
…/…/指的是当前文件所在的上上级目录
绝对路径:“/pages/test/test”
12、微信官方UI库WeUI:是一台同微信原生视觉体验一直的基础样式库。
包含button、cell、dialog、progress、toast、article、actionsheet、icon等格式元素
下载地址:https://github.com/Tencent/weui-wxss
开发者可以将样式库下载并使用微信web开发者工具打开dist目录并导入,可以预览样式库(提前复制style文件夹,并在app.wxss文件中加入@import‘style/weui.wxss’)
13、将表单中输入的值传入后台:
在中加入bindchange事件
14、在.js文件中的data语句中加入变量并设置初始值name:’’
在.js文件中加入changeName:function(e){this.setData{name:e.detail.value}}函数
15、bindtap事件的绑定:
可以绑定在.wxml组件上,并触发事件(需要在.js逻辑层中定义相应的处理函数)
16、小程序API的路由(5种):
- wx.switchTab:跳转到tabBar页面,并关闭其他所有非tabBar页面
- wx.reLaunch:关闭所有页面,并打开某个页面
- wx.redirectTo:关闭当前页面,并跳转到相应的某个页面。但不允许跳转到tabBar页面
- wx.navigateTo:保留当前页面,并跳转到相应的某个页面。但不允许跳转到tabBar页面【页面会自动添加返回的标识】
【注:小程序中的页面栈最多只有10层】
- wx.navigateBack:关闭当前页面,返回上一层或多级页面。可以通过getCurrentPages获取当前的页面栈,来决定返回多少层。
17、声明变量和变量的赋值:
(1)在.js文件的data数组中定义变量,并赋值
A:‘a’,
(2)可以在.js文件中通过var语句定义变量,并赋值
var newList = this.data.list.sort(this.randSort);
(3)在wxml文件中使用{{ }}形式将文字变成变量,并在js文件中对其赋值
<button bintap='beginAnswer'>{{msg}}</button>this.setData({msg:'测试结束')}//更阿贵数据的同时会重新展示更新的页面或者this.data.msg='测试结束'//只改变msg的值,不会更新页面
18、 this.setData 中不能使用 console.log( )语句, 如果需要查看赋值后变量的值,需要在 this.setData({ })语句外使用 console.log( )打印 查看变量的值。
19、带参数的跳转页面:
(1)在js文件中使用生命周期函数来获取页面参数,给生命周期函数function( )中定义一个值
onLoad:function(options){ A:options.A-0}
(2)使用?传递参数
url: ‘/pages/result/result?A=’ + this.data.A + ‘&B=’ + this.data.B +
‘&C=’ + this.data.C + ‘&D=’ + this.data.D + ‘&correct=’ +
this.data.correct + ‘&error=’ + this.data.error
20、Math.random( ):产生一个[0,1)之间的随机数
21、sort()方法用于对数组元组进行排序
22、获取全局对象,使用getApp
23、传递对象
// 通过JSON.stringify(obj) 方法将对象转化为字符串进行传递
// 跳至结算页
/*** 向下一级页面传递对象参数*/buyAction: function(e) {var model = JSON.stringify(e.currentTarget.dataset.obj);wx.navigateTo({url: '../detail/detail?model=' + model,})}
在下个页面接收
//在下个页面的onload中获取,onLoad: function (options) {var model = options.obj;console.log(options.obj)this.setData({model:model})},
传递数组/*** 向下一级页面传递对象参数*/buyAction: function(e) {var model = JSON.stringify(selected_list);wx.navigateTo({url: '../detail/detail?model=' + model,})}在下个页面接收
/*** 生命周期函数--监听页面加载*/onLoad: function (options) {// 先将字符串转化为数组var list = JSON.parse(options.selected_list)console.log(list)},
24、在app.js中获取用户信息,使用wx.getSetting()
25、小程序的登录流程:
小程序通过 wx.login()获取 code, 然后通过 wx.request()发送 code 至开发者服务器,开发者服务器将登录凭证 appid、 appsecret 与 code 用于校验微信接口,微信接口服务向开发者服务器返回用户唯一 标识 OpenID 和 会话密钥 session_key。开发者服务器实现自定义登录状态与 openid 与 session_key 关联,并向小程序返回自定义状态。小程序将自定义登录状态 存入 storage,并用于后续 wx.request 发起业务请求。
对于某个微信小程序,每个用户访问该小程序都有产生一个唯一的 openid,这 个 openid 为用户访问该小程序的标识符,即每个用户的 openid 都是不一样的。因 此,可以把 openid 作为用户唯一标识符(类似身份证号),并存于数据库中用以后 续操作。
由于 app.js 会先于其他页面执行,所以比较适合处理一些注册函数,因此将 wx.login( )方法写在 app.js 文件中。
26、wx.request():主要用于发送 https 网络请求
提供一个开放接口: https://zjgsujiaoxue.applinzi.com/index.php/Api/Weixin/code_to_openidv2
// 登录wx.login({
success: res =>{ // 发送 res.code 到后台换取 openId, sessionKey, unionId
wx.request({
url: 'https://zjgsujiaoxue.applinzi.com/index.php/Api/Weixin/code_to_openidv2',
data: { 'code': res.code, 'from': 'wxbf9778a9934310a1' },
success: function (res) {
console.log(res.data) //将 SESSIONID 保存到本地 storage
wx.setStorageSync('jiaoxue_OPENID', res.data.openid)
},
fail: function (res) {
console.log('res' + res)}
})
}
})
27、数据缓存:
可以通过数据缓存 API 可以对本地 缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB。 localStorage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。 注意: 如果用户储存空间不足,微信会清空最近最久未使用的小程序的本地缓 存。因此不建议将关键信息全部存在 localStorage,以防储存空间不足或用户换设备 的情况。
同步=异步+Sync(synchronization)
同步函数与异步函数之间的区别是,异步不会 阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。另外异步函数中 含有成功回调函数,可用于表示数据处理成功后的操作。
28、wx.showModel(Object object)显示模态对话框:
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
title | string | 提示的标题 | |
content | string | 提示的内容 | |
showCancel | boolean | true | 是否显示取消按钮 |
cancelText | string | ‘取消’ | 取消按钮的文字,最多 4 个字符 |
cancelColor | string | #000000 | 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 |
confirmText | string | ‘确定’ | 确认按钮的文字,最多 4 个字符 |
confirmColor | string | #576B95 | 确认按钮的文字颜色,必须是 16 进制格 式的颜色字符串 |
success function 否 接口调用成功的回调函数【confirm和cancel事件】
29、 wx.canIUse(‘ ’):判断小程序的API,回调,参数,组件等是否在当前版本可用
30、由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => { }
31、bindchange 事件:
当输入框中的内容发生改变时, 触发对应的事件处理函数,并且输入框中的值可以通过 event.detail.value 来获取。
32、wx.showToast( )与 wx.showMaodel( )一样是界面交互中的一种消息提示框
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
title | string | 是 | 提示内容 | |
icon | string | ‘success’ | 否 | 图标 |
image | string | 否 | 自定义图标的本地路径,image 的优先级高于 icon | |
duration | number | 1500 | 否 | 提示的延迟时间 |
mask | boolean | false | 否 | 是否显示透明蒙层,防止触摸穿透 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都 会执行) |
33、icon的合法值
success 显示成功图标,此时 title 文本最多显示 7 个汉字长度
loading 显示加载图标,此时 title 文本最多显示 7 个汉字长度
none 不显示图标,此时 title 文本最多可显示两行,1.9.0 及以上版本支持
34、由于照搬了豆豆云的后台,因此涉及到“加入课程”的概念,开发者需要向后台申请一个课程,得到课程号,申请链接如下:
http://zjgsujiaoxue.applinzi.com/index.php/Api/User/createCourse?appid=123&courseName=1028 教学&questionSet=1012&creater=大佬
其中 appid 代表开发者小程序的 appid,courseName 代表要创建的课程的名字,开发者可自定义,questionSet 代表实现预设的题目集(后续无法更改),creater代表创建者。
已创建过课程,课程号:11686 (请确认appid: 无误,如果需要修改课程信息请联系管理员)
35、CSS position 的属性值
- absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”,“right” 以及 “bottom” 属性进行规定。
- fixed: 生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 - relative:生成相对定位的元素,相对于其正常位置进行定位。
因此,“left:20” 会向元素的 LEFT 位置添加 20 像素。 - static: 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者z-index声明)。
- inherit: 规定应该从父元素继承 position 属性的值。
36、CSS margin-right 属性
值 | 描述 |
---|---|
auto | 浏览器设置的右外边距。 |
length | 定义固定的右外边距。默认值是 0。 % 定义基于父对象总高度的百分比右外边距。 |
inherit | 规定应该从父元素继承右外边距。 |
37、Display 属性
display: inline 内联元素只需要必要的宽度,不强制换行。
display: block 块元素是一个元素,占用了全部宽度,在前后都是换行符。
display: none 或 visibility: hidden 虽然都可以实现元素和组件的隐藏,但是
display: none 和 visibility: hidden 会起到完全不同的效果
visibility: hidden 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display: none 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是
38、class 和 style 的区别:
<view class="weui-cell__hd" style="position: relative;margin-right: 10px;">
在上图中的 wxml 代码中我们经常会发现一个 view 属性中既有 class=“weuicell__hd” ,又有 style=“position: relative;margin-right: 10px;”
虽然这他们都可以实现页面的修改,但是两者之间还是有区别的。
在 wxml 当中前端读取数据都是通过就近原则所以 style 是直接在页面语句中的语句中进行编写,在程序执行的时候,style>class
39、style的部分属性设置:
margin-right:是指图片的右测距离的大小
font-size:字体大小的设置
40、wxss中的样式设置:
border-bottom:框的底部样式,1px solid #eeeeed
height :可以改变选项间隔,
align-items:的参数改为 left 就可以左对齐,
padding :可以修改选项道题干的距离。
margin-top:属性用于控制该组件与上一个button组件之间的距离
text-align:值为center==>使得该组件居中
margin: 20px 15px第一个参数是button上下的距离,第二个参数是左右的距离
41、let 只能在一块(即一个{}中的区域叫做一个块域)中使用定义过的变量,可以是用 var 来定义变量,因为 var 是全局变量,跳出 for 循环以后还是可以使用,还有 const 用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,跳出块也不能访问变量,而且不能修改。
42、其中需要修改的 API 分别是:
章节 Url:Gateway/route?method=pingshifen.question.chapter&course_id=10014
专题 Url:Gateway/route?method=pingshifen.question.special&course_id=10014
收藏 Url: Gateway/route?method=pingshifen.question.collect&course_id=10014
提交答案 Url: Gateway/route?method=pingshifen.question.submit&course_id=10014
题号 Url: Gateway/route?method=pingshifen.question.get_id_items&course_id=10014
题目详情 Url: 'Gateway/route?method=pingshifen.question.get_info&course_id=10014
43、位置信息相关API调用:
纬度和经度:浮点数、范围是-90~90
(1)wx.chooseLocation(Object,Object):打开地图选择位置。【gcj02】
获取所选目录位置的经纬度,并赋值给choosen数组的longitude(经度)和latitude(纬度)
(2)wx.getLocation:获取当前位置的经纬度、速度
可赋值给got数组的longitude和latitude,当用户离开小程序后,此接口无法调用。
type string 默认值是wgs84(返回gps坐标),gcj02返回可用于wx.chooseLocation的坐标
44、button按钮中的disable属性的使用:
(flag1和flag2初始值都是false,成功选择位置和成功获取当前位置时,flag1和flag2编程true)
<button class="weui-btn" type="primary" disable="{{!(flag1&&flag2)}}">测距</button>
45、Math函数:
- Math.asin反正弦函数
- Math.sqrt()计算平方根
- Math.pow(x,y)用于计算x的y次幂的值
- Math.round()用于数字的四舍五入
- toFixed()可以把number四舍五入为制定小数位数的数字
- Rad:function(d){
return d * Math.PI / 180.0;}
//该函数是用来进行单位换算,将度数转换成弧度
46、success回调函数的使用:
(1)success fuction(res){},这里面不能调用函数以外的this
(2)success (res)=>{}可以this到success以外的data
47、本地后台环境安装与测试:
(1)Wampserver:【集成了Windows、Apache、MySQL、PHP的本地集成环境】
选择English=>ok=>accept=>next=>E盘=>next=>next=>install
iexplore.exe (Internet Explorer)will be used as Browser by Wampserver.Do you want to choose another Browser installed on your system?
=>next =>finish
·Wampserver安装后缺MSVCR110.dll:
缺MSVCR110.dll下载这个:Visual C++ Redistributable for Visual Studio 2012 Update 4
缺MSVCR120.dll下载这个:Visual C++ Redistributable Packages for Visual Studio 2013
=>必须显示绿色标识(红色和橙色都不行)
橙色可以进入计算机管理,关掉服务中的SQL ServerReporting Services
48、本地环境安装与测试:
·安装Sublime【脚本编辑器】
·搭建本地环境:将提供的后台代码 1 放在Wampserver安装目录下wamp64->www文件夹中
单击绿色图标,单后单击phpMyAdmin按钮,进入浏览器中,弹出phpMyAdmin登录界面
用户名:root 密码为空=>点击“执行”
点击新建,新建数据库的名字命名为 pingshifen,排序规则选择 utf8_general_ci,点击 创建即可创建一个名为 pingshifen 的数据库。
新建完之后,选择 pingshifen 数据库,点击导入,然后点击浏览,选择提供的 pingshifen.sql 文件,选择完后,点击页面最下方的执行,将 pingshifen.sql 导入到本地数据 库中。
49、修改服务器地址:
打开微信开发者工具的项目,=>打开config.文件=>将apiUrl改为 http://127.0.0.1/1/index.php/Api
注意,其中从第 3 章到第 7 章涉及到的一下注册 Api 接口与申请课程号的网的前缀需要 改成本地地址,前往 http://127.0.0.1/1/index.php/Page/Index/register 重新注册一下 api 接 口,前往 http://127.0.0.1/1/index.php/Api/User/createCourse?appid=?????? &courseN ame=1028 教学&questionSet=1012&creater=大佬重新申请一下课程号,申请完课程号后不 要忘记修改一下 config.js 中的 courseId。
50、api实现前后台交互:
http://127.0.0.1/1/index.php/Api/User/current
上面 url 中,
http://127.0.0.1/1为服务器地址,
index.php为入口文件,
Api/User/current 为 api 位置
Api/User/current 中 Api 代表目录名,User 代表 UserController 控制器,current 为控制器中的方法
·前后台的交互是单向的,服务器不会主动向前台发送数据。
51、在PHP中使用ajaxReturn方法返回数据 $this->ajaxReturn(‘测试通过’);
每次修改后台代码都要及时保存
可以再.js文件中使用wx.request({})访问后台代码中的方法
wx.request({url:userUrl+'test',data{'testA':'A'}success:function(res){console.log('请求结果',res)}})
52、在后台代码中,可以使用I(‘参数名’)方法获取到http请求中的数据,可以加上参数
public function test(){$data = [];$data['I()'] = I(); $data["I('testA')"] = I('testA');$this->ajaxReturn($data);}
53、数据库的增删改查:
在PHPMyAdmin数据库中新建一个数据表。可以选择字段、类型,勾选A_I以使其自增,Collation代表数据标的字符集
·查:使用where()接受一个数组作为查询参数,一个数组可以由多个参数
(1)select:会返回所有满足where条件的数据
(2)find:只返回满足where条件的第一条数据
·增:使用add增加记录。add接收一个数组作为参数,数组内容为将要插入到数据表中的值
·删除:使用delete删除记录
·修改:使用save修改记录
54、新浪云环境配置:
(1)创建新浪云运用:
· 注册新浪云账号,并登陆
注册地址: http://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKW3rYGuga99nomufo zQdg.html
· 进入首页,点击控制台,选择云应用SAE
· 单击创建新应用
· 应用中部署环境的开发语言,选择PHP,
· 运行环境选择标准环境,
· 语言版本选择5.6
· 代码管理选择SVN
· 应用信息的二级域名和应用名称可以根据自己的要求任意填写
· 最后单击“创建应用”
(2)代码版本管理:一个应用中可以创建多个版本,单击创建的应用,进入应用,并找到代码管理。
(如果要使用SVN对代码进行管理,需要下载并安装SVN。)
地址为:https://tortoisesvn.net/downloads.html
【详细介绍使用 TortoiseSVN 向新浪云部署代码:】
1. 创建一个新文件夹作为本地工作目录(Working directory),可以使用应用名为文件夹名。如,为我的应用 jiaoxue6 创建本地工作目录。
2. 进入 jiaoxue6 的文件夹,从新浪云的 SVN 仓库检出(checkout)一个应用的其中 一个版本的代码,右键–>点击“SVN Checkout”
3. 在弹出页面中填写SVN仓库地址路径即可,这里是:https://svn.sinacloud.com/jiaoxue6/1,对应的是教学 6 里面的第一个版本,
第一次操作会弹出用户名和密码,,同样在SVN仓库中找到相应的用户名,输入自己设置的安全密码
4. Reversion 处,“HEAD revision”是指最新版,也可以指定 Revision 为任意一个版本。
5. 点击 ok 记录 checkout 新浪云中的代码。
6. 然后将我们提供的后台代码放在 jiaoxue6 的文件夹目录下,(不替换原有的2个文件)替换 checkout 出来的代码。 替换完后,回到 jiaoxue6 所在的目录,右键->点击 SVN Commit。
7. 弹出对话框后,点击 All 全选文件上传,点击 ok 即可将后台代码上传至新浪云。
(3)开启共享型MySQL服务:
1. 将后台代码上传至新浪云后,我们还需要在新浪云创建一个数据库,我们选择共享型 MySQL,打开服务开关,开启共享型 MySQL 服务。
2. 点击“使用 phpMyAdmin 管理”进行数据库的管理。
3. 进入后选择导入,点击浏览,导入提供的 pingshifen.sql 文件。这里也可以选择自己本地导出的数据库,这样数据库里就有自己的数据了,不需要从头操作一遍了。选择文件后, 点击执行即可。
4. 成功导入数据库后,回到共享型 MySQL 服务页面,查看数据库连接信息。【需要将数据库的地址保存下来】
(4)修改:
1.其中,数据库连接信息是用于将后台代码与数据库进行连接,因此之前使用 SVN 上传 至新浪云的后台代码,需要修改数据库连接文件,使其与数据库成功相连。
2. 收下你打开“在线编辑”,代码目录为 Application/Common/Conf/config_sae.php和Application/Api/Conf/config_sae.php将数据库名,用户名与密码改为我们开启的数据库服务的数据库信息。(信息在共享MySQL中)
3. 然后只要改一下微信开发者工具中的内容, 将我们的项目中 config.js 的 apiUrl 第一行取消注释,并将域名改成自己的新浪云服务器的域 名,然后把第二行的注释掉。
【新浪云应用域名,即为代码管理中的版本访问链接】
7. 由于后台代码中使用了云缓存,因此需要打开数据库与缓存中的 Memcached 服务。这样新浪云上的后台才能真正跑起来
(https://www.imooc.com/learn/949可以进入网站学习关于promise的用法)
57、微信小程序的云开发:
新建一个使用云开发的小程序 => 选择开通云开发(环境名称有自己填写,环境ID会自动生成) =>
在模拟器中点击“点击获取openid”后会提醒检查login云函数是否已部署 => 双击打开cloudfunctions目录 => 右击login => 选择“上传并部署:云端安装依赖(不上传node_modules)”
重新编译代码 => 单击获取openid
58、云开发数据库:
· 新建集合:打开云开发控制台,进入数据库管理页 => 单击“集合名称”或“+”创建集合
· 新增记录:单击“下一步”,根据提示打开pages/databaseGuide/databaseGuide.js文件 => 定位到onAdd方法 => 将该方法中注释掉的代码解除注释 => 单击“编译” => 单击“新增记录”
可以在云开发 => 数据库 => counters集合中看到新增的记录
· 查询记录:单击“下一步” => 打开pages/databaseGuide/databaseGuide.js文件,定位到onQuery方法,将该方法中注释掉的代码解除注释 => 重新编译 => 单击“查询记录”
· 更新记录:单击“下一步” => 打开pages/databaseGuide/databaseGuide.js文件,定位到onCounterInc和onCounterDec方法 => 取消注释 => 单击“+”按钮,将数字加至6, => 打开云开发控制台,可以看到数据库counters集合里的最新一条记录里的counter值变成了6
· 删除记录:单击“下一步” => 打开pages/databaseGuide/databaseGuide.js文件,定位到onRemove方法 => 重新编译
59、云函数:
· 单击“快速新建云函数”按钮。根据云函数指引中的提示来学习云开发中如何定义一个云函数
· 可以单击“测试云函数”
· 在云函数根目录cloudfunctions撒花姑娘右键选择“新建Node.js函数”,并命名
· 在创建的cloudfunctionsd/sum/index/js文件中,将原有的云函数入口函数删除,然后添加如下代码:
//云函数入口函数
export.main=(event,context)=>{console.log(event)console.log(context)return{sum:event.a+event.b}}
- 在pages底下的addFunction.js文件中调用命名的云函数
- 右击cloudfunctions目录,选择“当前环境”,在可选环境中选择当前使用的环境
- 在cloudfunc/sum目录撒花姑娘右键。断则“不上传并部署:远端安装依赖(不上传node_modules)”上传并部署命名的云函数
- 完成后重新编译,单击“测试云函数”按钮,可以查看调用结果
60、如果需要微信的插件,需要登录微信公众平台,在设置中点击第三方设置=>点击插件管理=>添加插件
添加完之后会报错 => 原因是云开发数据库中没有需要的课本对应的记录=>需要惊醒数据库的导入。
61、需要修改云函数getUserCollectList目录下index.js中变量env的值,修改为自己的环境ID
MOOC微信小程序开发从入门到实践~笔记相关推荐
- 微信小程序开发从入门到实践 测试6
- 微信小程序开发快速入门
最近整理文件,找到一个18年写的微信小程序开发快速入门,对于新手还是值得一看的,三年多过去了,可能一些接口已经更新了,不过,整体思想还是没变的. 如果你熟悉JavaScript,那你基本上看完这个文档 ...
- 微信小程序开发从入门到精通
微信小程序开发从入门到精通 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识 ...
- 微信小程序开发基础入门笔记
文章目录 vsc 安装插件(小程序开发助手-微信小程序开发助手) 日常注意: 微信小程序WXS模块的使用 框架 1小程序结构和传统的web结构 2 基本的项目目录 3全局配置app.js 4.运算 = ...
- 七天学习微信小程序开发(一)—— 学习笔记
文章目录 前言 目标 第一天 -- 前端配置和编写 微信开发 微信小程序的代码结构 常用标签(wxml) 常用样式(wxss) 界面布局的技术 任务 第二天 -- 深度学习微信前端编写(一) 程序底部 ...
- 【TgM阅读笔记】《微信小程序开发——从入门到实战》(陈云贵、高旭)
阅读笔记系列(二) 阅读前言: 速度笔记: 比较起来: 此处摘录前言内容简介同时用以后续文章目录大纲: 阅读前言: 读本书是基于三大前提下的: 了解到其基础设计方式有Java Web程序设计有共同对接 ...
- 【helloworld】-微信小程序开发教程-入门篇【1】
1. 开篇导言 本节目标:旨在演示如何用开发者工具构建并运行简单的 helloworld 应用. 目标用户:无编程经验,但对微信小程序感兴趣的同学. 学习目标:开发者工具的基本使用流程,即创建.导入. ...
- 微信小程序开发的入门基础知识点
一.小程序介绍_安装_使用 介绍小程序: 2017年1月9日,张小龙,腾讯. 支付宝现在也推出了小程序 无需安装,无需卸载,触手可及,用完即走 小程序基于微信,微信基于腾讯,腾讯有庞大的用户基数. 小 ...
- 微信小程序开发从入门到实战 --第1章 认识小程序
第1章 认识小程序 1.1.1 微信小程序产生的背景 服务号 订阅号 企业微信 微信小程序 1.1.2什么是微信小程序 小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及&qu ...
最新文章
- vlc打开h264参数配置
- excel函数去重_Java 嵌入 SPL 轻松实现 Excel 文件合并
- 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )?
- Pyppeteer库之四:Pyppeteer的页面操作(下)
- (Matlab问题解决)运行matlab程序后,工作区不能显示变量
- 适用于Photoshop,Xd和Sketch的UI套件
- 学校计算机教室局域网的建立,校园局域网组建及配置.pdf
- spring配置数据源的4种方式--简介
- 为提升 DCP 传输效率,阿里工程师竟然这样做!
- Bristol的第18篇密码学
- Ubuntu16.04火狐浏览器问题汇总
- 让你终身受用的世界顶级思维
- 【BZOJ 1433】 [ZJOI2009]假期的宿舍
- 计算机右键菜单更换顺序,电脑图标排列顺序怎么自己改变了
- 凡事预则立不预则废,你有自己的应急基金吗?教你如何理财
- 利用Vultr主机安转宝塔Web面板搭建wordpress博客建站教程
- DocSys安装说明
- CSK跟踪算法简介及代码的解读
- EBS INV:客户料号
- AcrelCloud-1000变电所运维云平台在榆林市科技馆的应用