微信小程序这一块(下)
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上上拉下拉出现白色,测试说体验不太好,一开始我以为是下拉上拉刷新造成的,关闭了依然是这样.为了体验好点,可以按一下解决: 方式一 ...
随机推荐
- C# 中常见的控件以及功能
1.StatusBar控件——显示各种状态信息. StatusBar控件可以有状态栏面板(用于显示图标以指示状态)或一系列动画图标(用于指示某个进程正在工作,例如,表示正在保存文档的 Microsof ...
- C#设计模式:享元模式(Flyweight Pattern)
一,什么是享元模式? 享元模式(Flyweight Pattern):采用共享技术来避免大量拥有相同内容对象的开销,主要用于减少创建对象的数量,以减少内存占用和提高性能 1,根本的思路就是对象的重用2 ...
- 【学习总结】java数据结构和算法-第三章-稀疏数组和队列
相关链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 稀疏数组 队列 稀疏数组 稀疏数组介绍 图示 应用实例 代码实现 SparseArray.java:与二 ...
- SSH简单Demo
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3 ...
- Nodejs的模块化
Node.js中的模块化 好处: 复用性高,一次定义,多次使用 前端模块化 AMD AMD的实现需要使用 require.js CMD CMD的实现需要使用 sea.js [ 不更新 ] Common ...
- MySQL系列理论知识
内容: 1.视图 2.触发器 3.事务 4.存储过程 5.内置函数 6.流程控制 7.索引与慢查询优化 —————————————————————————————— 1.视图: 1.视图是什么: 视图 ...
- JVM垃圾回收算法图解
参考文档:https://www.toutiao.com/a6691966641242112516/ 垃圾搜集算法 标记-清除法 标记-清除算法采用从根集合(GC Roots)进行扫描,对存活的对象进 ...
- Sersync 上配置 Sersync 服务
上面的工作做好之后呢,下面就开始正式配置我们的 Sersync 了! 我们在 Sersync 安装过程中所用到包均是从谷歌 Sersync 项目组取得的,地址: https://code.google ...
- JS 控制子页面刷新父页面
iframe里面的子页,用parent.location.href = parent.location.reload();如果是window.open 打开就用opener.location.relo ...
- RPC的解释以及RPC和Restful、RPC和RMI的区别
如何科学的解释RPC 说起RPC,就不能不提到分布式,这个促使RPC诞生的领域. 假设你有一个计算器接口,Calculator,以及它的实现类CalculatorImpl,那么在系统还是单体应用时,你 ...