//app.js App({ onLaunch: function (options) { //设置场景值到缓存中: //wx.setStorageSync("scene", options.scene); //return ; this.globalData.scene = options.scene; }, globalData:{ scene:'' } }) 在页面中获取全局变量: const app = getApp() Page({ //进来加载页面: onLoad(opts…
原文转载自:微信小程序onLaunch.onLoad执行生命周期 1.需求:先执行App的onLaunch添加验证权限等,再执行Page里的onLoad. 2.问题:还没有等onLaunch执行完成,onLoad就已经开始执行了. 3.解决办法:定义回调函数. 4.具体实现:Page页面判断一下当前app.globalData.employld是否有值,如果没有(第一次)定义一个app方法(回调函数),App页面在success后判断有没有page页面定义的回调方法,如果有就执行,因为回调函数是…
微信小程序在JavaScript文件中声明的变量和函数只在该文件中有效:不同的文件中可以声明相同名字的变量和函数,不会互相影响.如果希望在各个页面之间共同使用某些信息,并且可以对共享数据进行修改设置,以便于其他页面根据数据变化进行对应的调整,最好使用全局数据globalData. globalData在app.js文件中app()全局应用实例中: // app.js App({ globalData: 1 }) 由于它具有共享属性,对于它的设置和修改,需要分两方面来说明. 第一,在app.js文…
1.1.1动态修改页面数据 在小程序中我们经常要动态渲染数据,对于新手而言我们常常遇到修改的数据在控制台显示和页面显示不一致,因为我们用“=”修改数据的,这种是可以修改,但无法改变页面的状态的,还会造成数据不一致,代码如下: data: { array: [{ text: '数组' }] } onLoad:function(){ this.data.array[0].text=1; console.log(this.data.array[0].text); } 修改代码: onLoad:func…
复选框: 闲话少说,这里直接介绍如何修改小程序提供的复选框的样式,如原生的是这样的: 需要的是这样的: 示例代码: /*复选框外框样式*/ checkbox .wx-checkbox-input { width: 40rpx; height: 40rpx; border: 4rpx solid #999; border-radius: 100%; } /*复选框外框选中样式*/ checkbox .wx-checkbox-input.wx-checkbox-input-checked { bor…
微信小程序是可以动态修改页面标题的. 首先我们来看看静态是怎么实现的 在对应页面的json文件里面加入下面代码就可以实现了 { "navigationBarTitleText": "素材图库" } 效果图如下: 其他动态的也是十分简单,毕竟是提供好了的接口,我们调用一下就行了.接口嘛,那就要操作对应的js文件咯.参考地址 quwei: function () { wx.setNavigationBarTitle({ title: '趣味表情' }) } 点击的时候触…
微信小程序的title是在json里面配置的 "navigationBarTitleText": "title名称" 这种title是固定死的不灵活处理一些页面相同title不同的场景就不够用了这个时候就需要动态配置title 微信小程序的setNavigationBarTitle方法可以实现title的动态配置 wx.setNavigationBarTitle({ title: "title名称" }) 这个方法可以写在oLoad里面或者onS…
按照原理是小程序初始化时会先触发APP里的onLaunch事件,之后再执行页面Page里的onLoad事件.但实际请求时在onLaunch事件中请求获取数据,等待返回值的时候Page里的onLoad事件已经执行结束了. 解决办法是: 定义一个回调函数 page页面判断一下当前定义的变量是否有值,如果没有(第一次)则定义一个APP方法(回调函数) APP页面在请求成功后判断是否有page页面定义的回调方法,如果有就执行该回调.因为回调函数在page页面里定义的,所以方法作用域的this指向是pag…
本来按照事件顺序,小程序初始化时触发App里的onLaunch,后面再执行页面Page里的onLoad,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执行了. //app.js App({ onLaunch: function () { console.log('onLaunch'); wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { }, success: function(res) {…
页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A页面: wx.navigateTo({ url: 'test?id=1' }) B页面: Page({ data:{ id:'', }, onLoad: function(option){ this.setData({ id:option.id }) } }) 2.本地存储: 关于缓存,可以先访问小…
如果在A页面设置全局属性,但在B页面无法使用的话,可能是这个问题: app.js globalData: { helpPage:0, }, A页面 A(e) { getApp().globalData.helpPage = 1 } B页面 const app = getApp(); Page({ data: { page:app.globalData.helpPage }, onLoad: function(e){ console.log(this.data.page) } )} 如果是这样写的…
通过JS动态 改变navigationBarTitleText的值 能否通过JS动态改变navigationBarTitleText的值? 方法一:可以在onLoad方法中通过wx.setNavigationBarTitle来设置,如下: onLoad:function(options){ wx.setNavigationBarTitle({ title: '修改后的导航栏标题', success: function(res) { // success } }) }, 方法二:不过不建议这种做法…
1.this.setdata修改数组的固定一项的值 changeItemInArr: function() { this.setData({ 'arr[0].text':'changed data' }) }, 2.动态修改数组某一项的值 changeItemInArr: function(index) { let name = `arr[${index}].name` this.setData({ [name]:'changed data' }) }, 3.this.setdata修改对象固定…
假如用户注册后,获得用户手机号和userid,realName默认为0,然后进入B页面进行实名认证,认证成功后realName变为1,再更新缓存里的用户信息. A页面用户注册后,存储用户信息: var obj = {}; obj.phone = res.data.data.phone; obj.userid = res.data.data.userId; obj.realName = res.data.data.isRealName; wx.setStorageSync('user', obj)…
获取radio值的方法: func:function(e){ var val=e.detail.value;//获取radio值,类型:字符串 var val2=parseInt(val);//将字符串转换为number } 实例: laternext: function (e){ // console.log(e); var val=e.detail.value;//获取radio值,类型:字符串 var val2=parseInt(val);//将字符串转换为number var score…
<view> <rich-text nodes="{{delcon}}" /> </view> data: { delcon:'' }, var result = '你的数据图片';  // 这里是富文本数据 const regex = new RegExp('<img'); // 正则判断 if(regex.test(result)){  //  如果有   就进入 result = result.replace(/\<img/gi, …
//success方法要用用success: res => {}的格式 success: res => { } //赋值报错 success:function(e){ } //报错内容: //TypeError: Cannot read property 'errcode' of undefined…
一. 脚本部分: 1. 表达式无效的处理: 如果你发现自己编写的表达式无效或者数据不展示,那么请先检查你的表达式是否有添加{{}},小程序中全部都要添加的,只要是在模板中调用js中的数据 2. 获取元素位置问题: 微信小程序是基于数据的,不支持DOM和BOM,所以没有提供获取元素位置的方法. 虽然有提供滚动事件.触摸事件,也只能获取触摸点相关的位置,并不能直接获取元素的位置,暂时还没摸索到合适替代方案. 3. 单击事件传值: 在小程序中,你无法再像h5那种直接在单击事件方法中传参了,它只提供了b…
如何定义一个全局变量: 1,在根目录下app.js中添加 App({ globalData: { g_isPlayingMusic : false, g_currentMusicPostId :null, doubanbase:"https://api.douban.com", self_reduction:"自减" } }) 2,在js中访问我们的全局变量 var app = getApp(); //全局的 getApp() 函数可以用来获取到小程序实例. onL…
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1476434677599 3:设计指南:https://mp.weixin.qq.com/debug/wxadoc/design/index.html 4:设计资源下载:https://mp.weixin.qq.com/debug/wxadoc/design/#资源…
mpvue? {{}} 在vue和小程序中的区别? 01 小程序中{{}}和vue中的{{}}用法基本一致,可以显示data中的数据,可以写表达式 不一样的地方? 01 小程序的{{}}可以写在属性中 02 小程序的{{}}不能使用方法的调用 微信小程序中的 wx:key 01 wx:for 可以遍历数组中的数据 02 wx:for  一定要指定wx:key,不然会报一个警告 03 wx:key  的值有两种方式 如果遍历的值是一个对象,wx:key可以是对象中某一个唯一的属性 .  如果数组中…
简介 中国目前大概有5000个表白墙,累计用户近3000万,是一个庞大的群体,但现在大都以微信朋友圈为基础进行信息中转,但是这种模式经营者和用户都不友好,尤其是经营者无法变现,用户无法公开评论,这些种种问题就造就了行星万象的诞生.这是一个信息发布类型的微信小程序,可以发布例如吐槽.找对象等信息.甚至能轻易改造为论坛小程序,废话不说,扫码查看小程序演示: 好项目应该被顶起来,可以的话给个Star鼓励下: Gitee: https://gitee.com/vtep/WISE-OS.git Githu…
微信小程序如何像vue一样在动态绑定类名 更新时间:2018年04月17日 14:08:44   这篇文章主要介绍了微信小程序如何像vue一样在动态绑定类名,文中给大家提到了vue与微信小程序的区别,需要的朋友可以参考下   小程序 开发中遇到这样一个问题... 排行榜开发的时候,前三名的样式不同,其余的样式一样.但是都是通过同一元素来遍历的,当时卡了一下.后来发现有module模块化这一概念,于是查了下api,一下子就做出来了. 就是不同名次上边的样式根据实际情况展示效果. 模块化 我们可以将…
前言 由于微信小程序在开发上不能安装npm依赖,和开发流程上也饱受诟病:Taro 是由京东·凹凸实验室(aotu.io)倾力打造的 多端开发解决方案,它的api基于react,在本篇文章中主要介绍了使用taro搭建微信小程序的一些步骤和一个简单demo的实现. 安装 先全局安装@tarojs/cli $ npm install -g @tarojs/cli $ yarn global add @tarojs/cli 之后我们初始化一个名为myApp的项目: $ taro init myApp 然…
1. 通过url带参数传递 1.1 固定参数传递 例如,从 list 页面到 detail 页面, 传递一个或多个固定值 list页面传值: <!--pages/list/list.js--> <navigator url="../detail/detail?id=1&name=名称">点此进入 detail</navigator> detail页面取值: <!--pages/detail/detail.js--> onLoad:…
所述问题: 前端时间开发了一个微信小程序商城项目,因为这个项目我们的需求是进入小程序就通过wx.login({}) 这个api进行用户登录,获取系统后台的用户基本信息.再此之前,一直以为微信小程序中的App.js 中onLaunch (小程序初始化完成执行该方法)方法比其他页面的的 onload 方法要先执行.那么问题就来了,我每次进入小程序首页的时候有时候会先执行onlaunch方法,有时又会先执行首页的onload的方法,最后经过确定,在微信小程序中这两个方法并没有执行先后的顺序,因为他们都…
前段时间开发了一款微信小程序,运行了也几个月了,在index.js中的onLoad生命周期里获取app.js中onLaunch生命周期中在接口里动态设置的globalData一直没有问题,结果昨天就获取不到动态设置的global数据了.因为我要获取小程序的unionid以及通过unionid去获取微信的openId,并且共享数据,最开始我是通过storage来做数据共享的,后来测试发现storage存在莫名被清空的情况,后来转用globalData来做数据共享,查了下,是因为app.js中的on…
在做微信小程序换皮肤的时候,需要动态修改菜单栏(TabBar)和导航栏(NavigationBar) 但是在小程序中它们的样式是写在app.json里面,而且app.json是静态编译,运行时哪怕你修改了里面的值,也是不起做作用的. 不过官方提供了动态修改两个样式的api. 动态修改NavigationBar wx.setNavigationBarColor({ frontColor:"#ffffff", backgroundColor:'#000000' }); 动态修改TabBar…
本人也是刚开始接触微信小程序,在微信小程序中经常会遇到修改数组中某一项的值,比如array[0]或者是对象中object.item的值.这些值在微信小程序中都需要使用一个名为setData的方法,而这个方法是通过键值对的形式对数据进行修改,setData({ 参数名: 值 }); 既然知道是以键值对的方式进行传参,那么我们在修改数组和对象的时候就直接将要修改的参数名写成对应字符串就可以了,然后使用[]将字符串括起来,这就告诉编译器这是指向的是该字符对应的实际位置,如下: var authorit…
微信小程序 传值取值的几种方法总结 列表index下标取值 页面传值 form表单取值 1. 列表index下标取值 实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可 1.1 生成值 <image src="../../../images/icon_delete.png" /><text>删除</text> 在删除图标与文字添加data-index=…