微信小程序-数据变量及事件绑定初探

Posted 追到梦的魔术师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序-数据变量及事件绑定初探相关的知识,希望对你有一定的参考价值。

一、数据变量

a、初始化数据

在页面.js 的 data 选项中,声明变量msg

data: {
    msg:'原始变量msg'
},

b、使用数据

1.模板结构中使用双大括号 {{message}}

2.注意事项: 小程序中为单项数据流 model ---> view

<view class="homeView">
  <view class="helloView">
    <text>{{msg}}</text>
  </view>
</view>

c、修改数据

this.setData({变量名: ‘修改之后的数据’}, callback)
this.setData({
  msg:'更改后的变量msg'
})

注意:

同步修改: this.data 值被同步修改

异步更新: 异步将 setData 函数用于将数据从逻辑层发送到视图层(异步)

不要直接修改 this.data --> this.data.msg = '更改后的变量msg' 不生效

二、事件绑定

1、事件分类

事件类型定义备注
冒泡事件当一个组件上的事件被触发后,该事件会向父节点传递。冒泡事件列表:链接

非冒泡事件

当一个组件上的事件被触发后,该事件不会向父节点传递。

非冒泡事件:表单事件和自定义事件通常是非冒泡事件:链接

2、事件绑定

a、bind 绑定:事件绑定不会阻止冒泡事件向上冒泡

<view class="helloView" bindtap="handleChild">
   <text>{{msg}}</text>
 </view>

a、catch 绑定: 事件绑定可以阻止冒泡事件向上冒泡

<view class="helloView" catchtap="handleChild">
   <text>{{msg}}</text>
 </view>

实例:

.wxml

<!--index.wxml-->
<view class="homeView" bindtap="handleParent">
  <view class="helloView" bindtap="handleChild">
    <text>{{msg}}</text>
  </view>
</view>

.js

// index.js
// 获取应用实例
const app = getApp()

Page({
  data: {
    msg:'原始变量msg'
  },
  // 事件处理函数
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },

  handleChild(){
    console.log('子视图事件响应')
    this.setData({
      msg:'更改后的变量msg'
    })
  },

  handleParent(){
    console.log('父视图事件响应')
  }
  
})

点击"原始变量msg",全局变量msg更改为“更改后的变量msg”

handleChild(){
    console.log('子视图事件响应')
    this.setData({
      msg:'更改后的变量msg'
    })
  },

 

控制台打印:

更改事件的绑定方式,将bind改为catch

<!--index.wxml-->
<view class="homeView" catchtap="handleParent">
  <view class="helloView" catchtap="handleChild">
    <text>{{msg}}</text>
  </view>
</view>

 

 

 

以上是关于微信小程序-数据变量及事件绑定初探的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序-数据变量及事件绑定初探

微信小程序之初探(常见语法 VS vue)常见问题(点击不生效,数据绑定)

微信小程序里在js里自定义了方法名在wxml里怎么绑定

微信小程序学习Course 2 事件

微信小程序 数据绑定方式

微信小程序怎么让数据动态显示?或者绑定点击事件?