千家信息网

开发微信小程序实例分析

发表于:2024-10-07 作者:千家信息网编辑
千家信息网最后更新 2024年10月07日,这篇文章主要介绍"开发微信小程序实例分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"开发微信小程序实例分析"文章能帮助大家解决问题。总结1:传参,方法判断j
千家信息网最后更新 2024年10月07日开发微信小程序实例分析

这篇文章主要介绍"开发微信小程序实例分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"开发微信小程序实例分析"文章能帮助大家解决问题。

总结

1:传参,方法判断

js中 方法中可以传递一个方法作为形参,在java中是不可以的。比如start项目中的

getUserInfo:function(cb){ var that = this if(this.globalData.userInfo){  typeof cb == "function" && cb(this.globalData.userInfo) }else{  //调用登录接口  wx.login({   success: function () {    wx.getUserInfo({     success: function (res) {      that.globalData.userInfo = res.userInfo      typeof cb == "function" && cb(that.globalData.userInfo)     }    })   }  }) }},

这里就是传递一个形参,cb的方法,并且这里还有一个很巧妙的判断方法

typeof cb == "function" && cb(that.globalData.userInfo)

利用的&&的运算规律,首先判断cb是不是一个方法, 这里的==可以作为类型是否相当的判断,然后在&&中如果前面的不满足,后面的则不会执行;如果是cb是一个方法,调用cb方法,并且传入success成功回调的userinfo参数

还有一点,if(this.globalData.userInfo) 可以作为是否为null的判断条件,在java中不可以。

2:log打印

log的打印,如果直接打印""+变量 是不可以的,因为人家没有toString()方法

X console.log("info"+info);

所以只能分开打印

console.log("info");console.log(info);

3: json取对象

json的使用,可以通过 json["key"]来取其子对象

person: {   name: "jafir",   age: "11",}var name = person["name"];var age = person["age"];
info: {persons:[{name:"123",age:11},{name:"jafir1",age:12}]}//如果有数组 通过这种方法获取 console.log(that.data.info["persons"][1].name) console.log(that.data.info["persons"][1].age)

4:定义boolean类型值

要注意如果在page的data中要定义一个boolean类型的值,必须是 isSuccess : true而不是 isSuccess :"true"

if (this.data.isSccess) {   console.log("true")  } else {   console.log("false")  }

因为如果是isSucees : "true" ,结果为true,没问题,但是如果是isSucess:"false",结果依旧为true,

因为这里的isSuccess不是boolean,而是一个非空类型,既然非空,if就是为true

如果,默认undefined,if则为false

5:使用"that"

建议在 page{}外面定义一个that变量,然后在onLoad中赋值为this,以后所有的地方,都可以使用that,这样就避免有些地方,this并不是指向page的上下文对象

//上下文对象var that;page({ onLoad: function (options) {  // 页面初始化 options为页面跳转所带来的参数  that = this; }...that.setData({    xxx: xxx,   })})

6:page的生命周期方法

  1. 只有onload中有options参数,可以获取页面传值等等,onload只会执行一次

  2. 但是onShow可以每次切换页面的时候执行,所以,需要每次刷新页面的数据请求,可以放在onShow中,测试过,性能体验基本无影响

  3. page的生命周期没有Android那么丰富,页面之间传值也有一定的限制。

  4. 可以通过普通的url的传值方式传值,xxx?key = value ,但是要注意:我们传的值其实是相当于字符串和url拼接在一起,请不要直接传一个对象,因为对象没有toString方法。

传递json对象的步骤为:

1.把json对象变成字符串,如果本身就是那就直接用,如果是json对象,需要 parseString(json)

2.和url进行参数拼接?key=value

3.取得时候在onload的options里面取出,

onLoad: function (options) {var value= options.key}

然后JSON.stringify(value)转为json对象使用

7: 页面间跳转

从主页跳转一个新的界面 新界面处理完逻辑 成功与否 结束之后怎么通知 主页结果?
这种情况,一般是没有办法解决的。经过测试,如果你想要从二级非主页界面直接navigator打开主页,是不行的,会报错。

所以,我们采用的策略是:二级界面处理完数据之后,直接返回,然后在主页界面重新拉取数据。所以会出现,我们的请求接口是在onShow方法里面执行的。因为onload只会执行一次

8:wxml

1.text标签可以使用bindtap

可以使用这种方式来显示默认的图片

3.再强调一下 在标签中使用data-xx-oo ="value",在对应对象中可以通过e.currentTarget.dataset.xxOo获得,这里的xx-oo ,-其实是会转义驼峰。这种一般使用场景为 你可以给你所点击或者绑定事件的view设置一个数据,比如你一个picker里面有5个view,就可以绑定每个view不同的值,在触发事件的时候取到相应的值

4.如果你想要显隐view你可以通过wx:if="true/false"来处理,但是这样的话,如果为false,page不会去渲染这个view,它所在的位置空间也不会预留,假如下面的view就会往上排。如果想要留存它的位置空间,可以修改其style样式来解决


9:统一网络请求处理结果

你可以封装一下网络请求的返回结果,做统一处理

requestWithGet: function(paramsData) { data.method = 'GET' this.requestInternal(paramsData)},requestWithPost: function(paramsData) { data.method = 'POST' this.requestInternal(paramsData)},requestInternal: function (paramsData) { var that = this; console.log('requestInternal: 开始请求接口[' + paramsData.url + ']'); //开始网络请求 wx.request({  url: paramsData.url,  data: paramsData.data,  method: paramsData.method,  success: function (res) {   console.log('requestInternal: 接口请求成功[' + paramsData.url + ']');   paramsData.success(res);  },  fail: function (res) {   console.log('requestInternal: 接口请求失败[' + paramsData.url + ']');   console.log(res);   ////在这里做请求失败的统一处理   wx.showToast({    title: '网络访问失败',    duration: 1500   })   typeof paramsData.fail == "function" && paramsData.fail(res);  },  complete: function (res) {//在这里做完成的统一处理   typeof paramsData.complete == "function" && paramsData.complete(res);  } })}

这样在使用请求的时候,可以直接先wx.request({}) 这样,就可以IDE给你联想生成对应的请求格式,然后直接把"wx.request" 替换 "requestWithGet"或者"requestWithPost"就OK了

关于"开发微信小程序实例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

方法 对象 页面 处理 主页 接口 结果 参数 可以通过 数据 时候 界面 类型 网络 统一 实例 实例分析 程序 发微 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发人员工资成本 网络安全期前七后八准吗 数据库使用监控软件 温州智能软件开发创新服务 抚宁天气预报软件开发 齐工大网络安全专业 小学网络安全宣传板报 加密货币软件开发 对数据库安全性控制的理解 服务器 中文乱码 浙江橙树网络技术公司陈菲 mysql查询当前数据库表 网络安全监管人是谁 印鉴 数据库 acer服务器访问地址 秦皇岛网络安全和个人信息 湖南新一代软件开发品质保障 企业电商软件开发多少钱 美的 软件开发 招聘 重庆管理软件开发搜索快忻科技 对数据库安全性控制的理解 网络技术工程师可以分为 网络技术专业常见的职业名称 谈谈对当今社会网络安全的认识 揭西软件开发小程序 网页服务器数据保存多长时间 网络安全包括哪几个机制 山东星卡互联网科技有五险一金吗 别人的服务器怎么管理 网络安全与信息化考研复试
0