IT评测·应用市场-qidao123.com技术社区
标题:
微信小程序
[打印本页]
作者:
tsx81428
时间:
2024-12-18 08:12
标题:
微信小程序
1app.js
每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。
App({
/**
* 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
*/
onLaunch: function () {
console.log('初始化');
},
/**
* 当小程序启动,或从后台进入前台显示,会触发 onShow
*/
onShow: function (options) {
console.log('页面回来了');
},
/**
* 当小程序从前台进入后台,会触发 onHide
*/
onHide: function () {
console.log('页面离开了');
},
/**
* 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
*/
onError: function (msg) {
},
//全局属性在所有页面下都可以获取
globalData:{
name:'weixin'
}
})
复制代码
全局属性怎么在别的页面获取呢?
//在.js文件中获取
const app=getApp()
console.log(app.globalData.name);
复制代码
在.js中的data和vue一样,放一些响应是数据,那怎么修改呢?
Page({
/**
* 页面的初始数据
*/
data: {
name:'老师'
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
setTimeout(() => {
//修改数据
this.setData(
{
name:"王五"
}
)
}, 3000);
}
}
复制代码
2数组遍历
微信的数组遍历和vue有点区别
data: {
name:'老师',
books:["三国演义","水浒传","西游记"]
},
复制代码
<view wx:for="{{books}}">
书名:{{item}} --{{index}}
</view>
复制代码
wx:for中不用写item和index,默认就存在。当然我们也可以改名
3 变乱
click(event){
//获取参数
console.log(event.currentTarget.dataset.myname);
}
复制代码
4 获取和设置用户头像和昵称
参考文档:开放本领 / 用户信息 / 获取头像昵称 (qq.com)
.wxml
<!-- 获取用户头像 -->
<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
<image class="avatar" src="{{avatarUrl}}" mode="aspectFit"></image>
</button>
<!-- 获取用户昵称 -->
<view class="inp" wx:if="{{nickName.length===0}}">
<input type="nickname" class="weui-input" placeholder="请输入昵称" bindblur="changeNickName"/>
</view>
<view wx:else style="text-align: center; margin-top: 50rpx;" >
您的昵称为:{{nickName}}
</view>
复制代码
.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
data: {
avatarUrl: defaultAvatarUrl,
nickName:''
},
onChooseAvatar(e) {
const { avatarUrl } = e.detail
this.setData({
avatarUrl,
})
},
changeNickName(e){
const {value} =e.detail
this.setData({
nickName:value
})
}
})
复制代码
.wxss
/* pages/demo/demo.wxss */
.avatar-wrapper{
width: 200rpx;
box-sizing: border-box;
background-color: #fff;
}
.avatar{
width: 200rpx;
height: 200rpx;
border-radius: 100rpx;
box-sizing: border-box;
}
.weui-input{
margin:0 auto;
border: 2rpx solid rgb(131, 130, 130);
width: 400rpx;
height: 60rpx;
}
复制代码
5小程序登录
参考文档:小程序登录 / 小程序登录 (qq.com)
.js
//登录
goLogin(){
wx.login({
success: (res) => {
wx.request({
url: 'http://93vjpu.natappfree.cc/user/user/login',
data:{
code: res.code
},
method:"POST",
success(res){
//获取后端返回的token
console.log(res.data.data.token);
}
})
},
})
}
复制代码
后端参考:苍穹外卖
6小程序文件上传
<button bindtap="upload">选择并上传文件</button>
复制代码
//文件上传
upload(){
wx.chooseMedia({
success(res){
console.log(res);
wx.uploadFile({
url:'http://localhost:8082/user/user/upload',
name: 'file',
method:"POST",
header:{
'content-type':'multipart/form-data'
},
filePath:res.tempFiles[0].tempFilePath,
success(res){
console.log(res);
},
})
}
})
}
复制代码
后端
@PostMapping("upload")
public Result<String> upload(MultipartFile file){
log.info("文件上传:{}",file.getOriginalFilename());
return Result.success();
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4