小程序开发中的漏洞

微信小程序开发

小程序开发

前端开发


浏览: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。小程序的网络请求不会自行承载