欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小程序的一些自己理解的基础知识

程序员文章站 2022-06-30 19:22:38
...
Page() 函数。在js文件里面写的处理页面的一些函数和方法

html里面写<image bindtap="bindViewTap"></image> 点击这个图片触发bindtap事件。 然后在js里面写
//事件处理函数
bindViewTap: function() {
wx.navigateTo({ //页面跳转到这个url。如果跳转的是tabBar选项卡的某个页面要写wx.switchTab({url:""})
url: '../logs/logs'
})

}


bindViewTap: function() { //这个块和data是平级的
this.setData({ msg: "Hello World" }) //再页面中新增加一个data的数据。你可以用{{}}写在页面标签中
},


转发函数

Page({
  data: {
    text: "This is page data."
  },
onShareAppMessage: function () {  //转发时触动的函数。写这个函数右上角才有转发按钮
  return {
      title: '自定义转发标题',
      path: '/page/user?id=123'  //转发跳转的页面路径
    }
  },

const util = require('../../utils/util.js')在一个js页面引入另一个js


为什么要把this转为that在使用

在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报undefiend。原因是,在javascript中,this代表着当前对象,会随着程序的执行过程中的上下文改变,在wx.request({});方法的回调函数中,对象已经发生改变,所以已经不是wx.request({});方法对象了,data属性也不存在了。

所以要

     var that=this;//把this对象复制到临时变量that。然后下面就用that来调用



想要换行br无效

小程序没有换行标签<br/>如果你想换行的话,需要使用\n.但是他必须写在text标签里面才有效

<text>\n多选框</text>


修改data中的数据,页面数据不改变是怎么回事?

Page({
data: { isShow: false },
changeStatus(){
console.log(this.data.isShow); 输出的是false
this.data.isShow = true; 从新赋值
console.log(this.data.isShow); 输出的还是true。但是页面中{{isShow}}的值还是false。
}
})


从上边代码和效果图我们可以看出:

1、习惯的赋值方式“=”在逻辑层是起到了作用改变了isShow;

2、视图层的并没有发生变化。 

结论就是常规的“=”赋值方式,在微信小程序中只能改变data中的数据,而不能改变视图层的数据,那么微信小程序怎么解决这个问题的,setData()方法。



如果data绑定的数据改变了,需要从新绑定到该变量

  setData:function(e){

       var that=this;

    that.setData({

    message:e.detail.value

   })

}

如果想获取data的数据。that.data.message