### 1. 通过使用open-data标签直接获取
```
<open-data class="logo" type="userAvatarUrl"></open-data>
```
### 2. 通过button直接获取
```
<button open-type="getUserInfo" bind:getuserinfo="GetInfo">获取信息</button>
```
```
GetInfo(e){
console.log(e.detail)
}
```
### 3. 使用组件方法
自定义组件
```
<button plain="{{true}}" open-type="{{openType}}"
bind:getuserinfo="onGetUserInfo">
<slot name="image"></slot>
</button>
```
通过onGetUserInfo事件获取用户信息,并将其传给父组件
```
onGetUserInfo(e){
var userInfo = e.detail
this.triggerEvent("getUserInfo", userInfo);
},
```
使用带插槽的btn组件
```
<v-btn openType="getUserInfo" bind:getUserInfo="getInfo">
<image slot="image" src="{{authorized?userInfo.avatarUrl:'images/my.png'}}" class="image-btn" mode="widthFix"/>
</v-btn>
```
父组件获取到用户信息
```
getInfo(e){
let userInfo = e.detail.userInfo;
this.setData({
userInfo,
authorized: true
})
}
```
加载时可以检查用户信息是否授权,如果授权,直接获取用户数据
```
得到用户授权的相关信息,检查用户是否授权获取相关信息
wx.getSetting({
success: (res)=>{
console.log(res);
if(res.authSetting['scope.userInfo']){
//获取用户相关信息
wx.getUserInfo({
success: res=>{
console.log(res);
this.setData({
userInfo: res.userInfo,
authorized: true
})
}
})
}
// console.log(res.authSetting['scope.userInfo']);
}
})
```
- 小程序配置
- 1 开始第一个小程序
- 2 navigationBar
- 3 flex弹性布局
- 4 响应式长度单位: rpx
- 5 添加新的页面
- 6 配置tabBar
- 7 欢迎页跳转到有tabBar的页面
- 小程序语法
- 1. 数据绑定
- 2. 列表渲染
- 3. 条件渲染
- 4. 小程序和vue data读取方式
- 5. 属性的数据绑定方式
- 6. bindtap与catchtap
- 7. event.targe和event.currentTarget
- 组件&demo
- 1. scroll-view
- 2. swiper
- 3. 制作一个音乐播放组件
- 4. chooseImage配合缓存创建头像
- 5. 获取input表单value(搜索栏实现)
- 6. map
- 7. Form表单提交获取数据
- 小程序API
- 1. 缓存 wx.setStorageSync
- 2. 选择图片 wx.chooseImage
- 3. 加载 wx.showLoading
- 4. 弹出框 wx.showToast
- 5. 分享与获取用户信息
- 项目结构类
- 1. 代码封装
- 2. wx.request请求数据分离
- 3. 组件
- 1. slot
- 2. 父元素传递class到子元素
- 3. 子组件向父组件传值
- 4. wxml中引用wxs封装方法