微信小程序这一块(下)
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上上拉下拉出现白色,测试说体验不太好,一开始我以为是下拉上拉刷新造成的,关闭了依然是这样.为了体验好点,可以按一下解决: 方式一 ...
随机推荐
- SCUT - 297 - 狂符「幻视调律(Visionary Tuning)」 - 重链剖分
https://scut.online/p/297 一般的树剖是关于点权的,但是突发奇想好像边权也是一样的.做一些小改动. #include<bits/stdc++.h> #define ...
- C# 判断文件夹与文件是否存在
//在上传文件时经常要判断文件夹是否存在,如果存在就上传文件,否则新建文件夹再上传文件 判断语句为 if (System.IO.Directory.Exists(Server.MapPath(&quo ...
- ORACLE之字符集修改(10g)
当从oracle服务器将数据导出成dmp文件后,再导入到本地的oracle数据库时,出现: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACL ...
- .NetCore模拟Postman的BasicAuth生成Authrization
一.思路 BasicAuth 是一种简单权限,传输UserName=<userName>,Password=<password> 1.用:连接Username,Password ...
- Linux性能优化从入门到实战:14 文件系统篇:Linux 文件系统基础
磁盘为系统提供了最基本的持久化存储. 文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构. 文件系统:索引节点和目录项 文件系统是对存储设备上的文件,进行组织管理的机制.组织方式不 ...
- python基础--5字典
#字典#dict#基本结构info={ "k1":'v1' #键值对 ,"k2":"v2"} #字典的value可以是任何值# info={ ...
- 动态规划—triangle
题目: Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjace ...
- python3-返回函数
函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = ...
- Web核心之JSP
JSP JSP = HTML + Java + JSP自己的一些语法 JSP也是一个动态网页开发技术. JSP本质 Jsp实际上就是一个Servlet,在jsp被访问时,tomcat会把jsp转换为一 ...
- 对webpack的初步研究5
Loaders 加载器是应用于模块源代码的转换.它们允许您在处理import或“加载” 文件时预处理文件.因此,加载器有点像其他构建工具中的“任务”,并提供了处理前端构建步骤的强大方法.加载器可以将文 ...