微信小程序这一块(下)
1、小程序分为两部分 :页面、组件
2、小程序中如何定义自定义组件?
凡是通过Page创建的都是页面,而通过Components创建的都是组件
当组件创建成功后,在需要使用的页面进行引入,(找到页面的json文件中的usingComponents配置项进行引入,key值是组件名称,value值是组件的路径)
!!!注意:自定义组件的事件必须放在methods中去
3、小程序中自定义组件如何进行传递参数
页面与组件进行传参?
给组件绑定自定义属性
在组件内部通过properties进行接收
-----------------------------------------------------------
组件与页面进行传参
给组件绑定自定义事件 bind自定义事件名称
在组件内部通过生命周期attached进行传递,在attached中通过调用this.triggerEvent进行事件的传参(第一个参数为自定义事件名称,第二个参数是需要传递的参数)
4、小程序中存储、读取、删除数据
onLoad(){
// wx.setStorage({//存储数据异步
// key:"wang",
// data:[{name:"wangwenchao",age:"20"}],
// success:function(){//在回调中可以验证是否存储成功
// console.log("存储成功")
// }
// })
// wx.setStorageSync("city",[{name:111,age:888}])//异步存储数据
// wx.getStorage({//异步获取数据
// key:"wang",
// success:function(data){
// console.log(data)//这里是你要获取的数据
// }
// })
// var data=wx.getStorageSync("wang")//同步获取数据
// console.log(data)
// wx.removeStorage({//异步删除数据
// key:"wang",
// success:function(){
// console.log("删除成功")
// }
// })
// wx.removeStorageSync("city")//同步删除
// console.log("删除成功")
}
详情见:https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorage.html
5、小程序中的路由跳转:
微信Api跳转,
组件跳转
<navigator url="/pages/logs/logs">日志页面</navigator> url是跳转路径,默认是,当前页面如果有tabBar那么不支持跳转
如果需要跳转那么
<!--pages/try/try.wxml-->
<button open-type="getUserInfo" bindgetuserinfo="bindgetuserinfo">点击</button>
<!-- 设置open-type="getUserInfo"获取用户信息 -->
<!-- bindgetuserinfo从这个回调中获取用户信息 -->
<!-- 详情可见:https://developers.weixin.qq.com/miniprogram/dev/component/button.html下 --> <view>用户昵称:{{username}}</view>
<view>用户头像:
<image src="{{userPic}}"></image>
</view>
Page({
data:{
username:"",
userPic:""
},
bindgetuserinfo(e){//获取信息的函数
console.log(e)
let data=e.detail.userInfo
this.setData({
username: data.nickName,
userPic: data.avatarUrl
})
}
})
7、用户授权的方式?
wx.authorize用户授权(出userInfo以外的授权)
wx.openSetting手动授权
wx.getSetting查看用户是否授权
App({
onLaunch(){
//进入小程序,主动发起授权,检测是否授权
wx.getSetting({
success:function(data){
if (!data.authSetting['scope.userLocation']){
//如果未授权,那么主动调用授权方法
wx.authorize({
scope: 'scope.userLocation',
success:function(e){
console.log(e)
}
})
}
// console.log(e)
}
})
// console.log("进入小程序")
},
})
8、小程序登录流程:
wx.login获取code值--------通过wx.request将code值发送到服务端-------服务端通过微信登陆验证接口获取session_key和openid-------将session_key融入到token当中并将token发送到客户端-------客服端请求数据是携带token到服务端进行验证
如何将code融入到token地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html
token验证流程:将用户名密码发送到服务端,验证成功以后会派发一个token到客服端,客服端进行数据请求的时候需要携带token到服务端,此时服务端会对比这个token是不是当时派发的那个,如果验证成功返回对应的数据,否则token验证失败
微信小程序这一块(下)的更多相关文章
- 微信小程序开发之 下拉刷新,上拉加载更多
本文记载了如何在微信小程序里面实现下拉刷新,上拉加载更多 先开看一下界面 大致如此的界面吧. 这个Demo使用了微信的几个Api和事件,我先列出来. 1.wx.request (获取远程服务器的数据, ...
- 微信小程序剖析【下】:运行机制
在上一篇<微信小程序「官方示例代码」浅析[上]>中,我们只是简单的罗列了一下代码,这一篇,让我们来玩点刺激的——就是看看IDE的代码,了解它是怎么运行的. 还好微信的开发团队在软件工程的实 ...
- 【微信小程序】转载:微信小程序实战篇-下拉刷新与加载更多
下拉刷新 实现下拉刷新目前能想到的有两种方式 1. 调用系统的API,系统有提供下拉刷新的API接口 当然,你可以直接在全局变量app.json的window里面配置上面这个属性,这样整个项目都允许下 ...
- 微信小程序在ios下Echarts图表不能滑动的解决方案
问题现象 这个问题的现象说起来很简单. 小程序页面中有一篇很长的文章,内部有一个Echarts图表,手指上下滑动观看内容. 但是手指滑动区域在Echarts图表上时,页面却不能滑动了. 如下图: 追踪 ...
- 微信小程序自定义组件-下拉框
这个是网址https://www.cnblogs.com/zjjDaily/p/9548433.html 微信小程序之自定义select下拉选项框组件 知识点:组件,animation,获取当前点击元 ...
- 微信小程序这一块(中)
1.if语句跟for循环的使用 <block wx:if="{{n==1}}"> <view>1917</view> </block> ...
- 微信小程序实战篇-下拉刷新与加载更多
下拉刷新 实现下拉刷新目前能想到的有两种方式 1. 调用系统的API,系统有提供下拉刷新的API接口 2. 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一个binds ...
- 微信小程序的界面下拉刷新
小程序的下拉刷新的值设置:需要设置app.json的window中 "navigationBarTextStyle":true
- 微信小程序-ios系统-下拉上拉出现白色,如何处理呢?
这几天做小程序,有些页面都是全屏的背景,在安卓上背景是固定的,而在ios上上拉下拉出现白色,测试说体验不太好,一开始我以为是下拉上拉刷新造成的,关闭了依然是这样.为了体验好点,可以按一下解决: 方式一 ...
随机推荐
- Python 特性?
1.Python 是强语言类型还是弱语言类型? Python 是强类型的动态脚本语言.强类型:不允许不同类型相加.动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候.脚本语言: ...
- C#传特定的值,获得特定的数组排序
一,在实际业务中,我们会有当我们传任何值进来时,我们要有特定的排序,,比如传进来的是"生物", "历史","化学", 但实际上我们需要的是& ...
- addEventListener 的三个参数
addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文 ...
- 更新SVN时提示要清理,但清理失败,乱码得解决方案
问题情况如图: 解决办法: 依托工具——sqlite3, 首先在项目根目录下找到.svn文件夹,将其中的wc.db复制到工具所在路径. 如果找不到.svn,需要把隐藏文件选项勾去. 路径如图: 此时, ...
- MicroPython 的优势
定位的场景 MicroPython 在设计上最初就是为了嵌入式微处理器运行,例如在 nRF51822 (256kB flash + 16kB RAM) 的芯片上也可以运行起来,也有人肾得慌在 STM3 ...
- 初学Java 数组统计字母
public class CountLetterInArray { public static void main(String[] args) { char[] chars = createArra ...
- jmeter中遇见的坑:url需要编码的
在postman中能请求成功,但是在jmeter就是请求失败报500错. 请求的 url :/graph/vertices?label=node&properties={"num& ...
- [洛谷P1514] NOIP2010 引水入城
问题描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行×M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. ...
- python 全栈开发,Day45(html介绍和head标签,body标签中相关标签)
一.html介绍 1.web标准 web准备介绍: w3c:万维网联盟组织,用来指定web标准的机构(组织) web标准:制作网页遵循的规范 web准备规范的分类:结构标准.表现标准.行为标准. 结构 ...
- tensorflow2 keras.Callback logs
官方文档上表示logs内存的内容为 on_epoch_end: logs include `acc` and `loss`, and optionally include `val_loss` (if ...