小程序开发中的漏洞
微信小程序开发
小程序开发
前端开发
浏览:1135 次

为了参加微信小程序开发大赛,我了解了微信小app的开发,并在实际开发过程中遇到了一些问题。这是一个避免重复的记录!
素描
小程序开发官方文档链接:
我的代码仓库:
我刚刚接触到小程序的开发。我觉得要编写好小程序,我必须熟悉前端开发,因为小程序的编码是基于HTML、CSS和JS的。但在微信中,为了创建微信生态系统,我们重新定义了小程序代码。其本质类似于前端开发。如果你了解NodeJS的开发,微信小程序的开发不是问题。
小程序与前端开发的关系
小程序开发工具文件视图如下:
文件视图
简而言之,有以下对应关系
在页面中放置页面
实用程序放置其他静态资源等
app。Js小程序初始化
app。Json小程序配置
app。wxss小程序的全局样式文件
项目配置。json项目的配置文件(开发者工具中的可视化编辑)
在该页面下,有以下对应关系
小程序
前端
解释
WXML语言
HTML语言
基本上没有区别,微信有自己的组件
wxs软件
CSS公司
文字完全相同
JS语言
JS语言
了解NodeJS并动态渲染前端
JSON公司
JSON公司
applet的每个页面都有一个json文件,该文件的配置信息名称相同
事实上,就是这么简单。对于初学者或刚开始使用前端的学生,您可以查看官方文档中的“入门教程”。事实上,小程序的推出有一些限制。这些功能仅限于帐户的主要属性,或者某些不符合值的小程序当然无法启动。
阶梯式矿坑
这部分是干货。我不得不抱怨。一开始,拿到它很烦人。因为WXML中的各种控件都已更改,一些CSS布局不知道发生了什么蜜露问题,然后所有的“愚弄”都解决了。

1.全局变量
全局变量是一件好事(尽管全局变量很好,但切记不要喝太多)。app。js代码如下:
//app.js
app({
onLaunch:函数(){
//演示本地存储功能
var logs=wx。getStorageSync(“日志”)||[]
logs.unshift(日期.now())
wx。setStorageSync(“日志”,日志)
//登录
wx.登录({
成功:res=>{
//将res.code发送到后台以交换openId、sessionKey、unionId
this.global数据。userKeyCode=资源代码;
//登录请求开发者服务器
wx.请求({
网址:this.globalData。main_url+'/user/login?代码='+res.code,
成功:(res)=>{
//获取用户密钥码
this.global数据。userinfo_isfinish=res.data.data。is_完成;
控制台日志(res.data.data.is_finish);
//获取标题
this.globalData.headers。Cookie=res.header[“设置Cookie”];
}
})
}
})
//获取用户信息
wx.get设置({
成功:res=>{
if(res.authSetting['scope.userInfo']){
//它已获得授权。你可以直接调用getUserInfo获取头像的昵称,框架不会弹出
wx.获取用户信息({
成功:res=>{

//您可以向后台发送res以解码unionId
this.global数据。userInfo=res.userInfo;
var userinfo_ temp=this.globalData.userinfo;
//改进用户信息
if(!this.globalData.userinfo_isfinish){
wx.请求({
网址:this.globalData。main_url+'/user/finishinfo?昵称='+userinfo_ temp.nickname+“&avatar=”+userinfo_temp.avatarUrl+“&gender=”+userinfo_ temp.gender+“&city=”+用户信息_ temp.city+“/”+userinfo_ temp.province,
header:this.globalData.headers,
成功:res=>{
安慰log(“微信用户首次成功登录以改善信息!”)
}
})
//因为getUserInfo是一个网络请求,它可能只在onLoad之后出现在页面上
//所以在这里添加回调以防止这种情况
if(this.userInfoReadyCallback){
this.userInfoReadyCallback(res)
}
}
}
})
}
}
})
},
全局数据:{
main_url:“https://192.168.43.121/art/public/index ",
userInfo:空,
userKeyCode:空,
userinfo_ isfinish:真,
标题:{“Cookie”:“”},
userLoaction:“”
}
})
2.网络请求

此坑用于在开发过程中从后端请求数据。发现没有登录提示。最初,每个请求都必须在头中附带cookie。小程序的网络请求不会自行承载