当前位置: 首页 > news >正文

ibm公司做网站互联网营销课程体系

ibm公司做网站,互联网营销课程体系,网站有标题,短租房网站哪家做最好目录 数据绑定 数据绑定的基本原则 在data中定义页面的数据 Mustache语法的格式 Mustache语法的应用场景 事件绑定 什么是事件 小程序中常用的事件 事件对象的属性列表 target和currentTarget的区别 bindtap的语法格式 在事件处理函数中为data中的数据赋值 事件…

目录

数据绑定

数据绑定的基本原则

在data中定义页面的数据

Mustache语法的格式 

Mustache语法的应用场景

事件绑定 

什么是事件

小程序中常用的事件

事件对象的属性列表 

target和currentTarget的区别

bindtap的语法格式 

在事件处理函数中为data中的数据赋值

事件传参

bindinput的语法格式 

实现文本框和data之间的数据同步 

实现步骤:

条件渲染 

wx:if

结合 使用wx:if 

hidden

wx:if与hidden的对比

列表渲染 

wx:for 

手动指定索引和当前项的变量名

wx:key的使用


数据绑定

数据绑定的基本原则

  1. 在data中定义数据
  2. 在WXML中使用数据

在data中定义页面的数据

在页面对应的 .js文件中,把数据定义到data对象中即可:

那么我们如何在页面上使用数据呢?这里我们就需要使用小程序中的Mustache语法。

Mustache语法的格式 

把data中的数据绑定到页面中渲染,使用Mustache语法(双大括号)将变量包起来,语法格式为:

<view> { { 要绑定的数据名称 } } </view>

Mustache语法的应用场景

Mustache语法的主要应用场景如下:

  1. 动态绑定内容
  2. 动态绑定属性
  3. 运算(三元运算、算术运算等)

事件绑定 

什么是事件

事件是渲染层到逻辑层的通讯方式,通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。

小程序中常用的事件

类型绑定方式事件描述
tap

bindtap 或 bind:tap

手指触摸后马上离开,类似于HTML中的click事件
inputbindinput 或bind:input文本框的输入事件
changebindchange 或 bind:change状态改变时触发

事件对象的属性列表 

当事件回调触发的时候,会收到一个事件对象event,它的详细属性如下:

属性类型说明
typeString事件类型
timeStampInteger页面打开到触发事件所经过的毫秒数
targetObject触发事件的组件的一些属性值集合
currentTargetObject当前组件的一些属性值集合
detailObject额外的信息
touchesArray触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouchesArray触摸事件,当前变化的触摸点信息的数组

target和currentTarget的区别

target是触发该事件的源头组件,而currentTarget则是当前事件所绑定的组件,举例如下:

点击 内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层view的tap事件处理函数。

此时对于外层的额view来说:

  • e.target 指向的时触发事件的源头组件,也就是上述情况的按钮组件
  • e.currentTarget 指向的是当前正在触发事件的那个组件,也就是e.currentTarget是当前的view组件

bindtap的语法格式 

1. 通过bindtap,可以为组件绑定tap触摸事件,语法如下:

<button type="primary" bindtap="btnTapHandler">按钮</button>

2. 在页面的 .js 文件中定义对应的事件处理函数,事件参数通过形参event(一般简写成e)来接收:

Page({

  btnTapHandler(e){

    console.log(e)

  }

})

在事件处理函数中为data中的数据赋值

通过调用this.setData(dataObject) 方法,可以给页面data中的数据重新赋值,示例如下:

Page({

  data: {

    count:0

  },

  btnTapHandler(e){

      this.setData({

        count:this.data.count+1

      })

  }

})

事件传参

小程序中的事件传参比较特殊,不能再绑定事件的同时为事件处理函数传递参数。因为小程序会把bindtap的属性值,统一当作事件名称来处理

我们可以为组件提供 data-* 自定义属性传参,其中 * 代表的是参数的名字,示例代码如下:

<button bindtap="btnTapHandler" data-info="{{2}}">按钮</button>

最终:

  • info会被解析为参数的名字
  • 数值2会被解析为参数的值

然后事件处理函数可以通过 e.target.dataset.数据名 获得参数值 

bindinput的语法格式 

在小程序中,通过input事件来响应文本框的输入事件,语法格式如下:

1. 通过bindinput,可以为文本框绑定输入事件:

<input bindinput="inputHandler"></input>

2. 在页面的 .js文件中定义事件处理函数:

inputHandler(e){

   console.log(e.detail.value)

 }

//e.detail.value是变化过后吗,文本框最新的值

实现文本框和data之间的数据同步 

实现步骤:
  1. 定义数据
    Page({data: {msg:'你好,'}
    })
  2. 渲染结构
    <input value="{{msg}}" bindinput="inputHandler"></input>
  3. 美化样式
    input{border: 1px solid #eee;padding:5px;margin: 5px;border-radius: 3px;
    }
  4. 绑定input事件的处理函数
     inputHandler(e){this.setData({msg:e.detail.value})}

条件渲染 

wx:if

在小程序中,使用wx:if="{{condition}}" 来判断是否需要渲染该代码块:

<view wx:if="{{condition}}">True</view>

也可以用 wx:elifwx:else 来添加 else 判断

<view wx:if="{{type==1}}">True</view>
<view wx:elif="{{type==2}}">True</view>
<view wx:else="{{type==3}}">True</view>

结合<block> 使用wx:if 

如果一次性控制多个组件的展示与隐藏,可以使用一个<block></block> 标签将多个组件包装起来,<block>标签使用wx:if 控制属性,示例如下:

<block wx:if="{{true}}"><view>1</view><view>1</view>
</block>

hidden

在小程序中,直接使用 hidden=”{{condition}}“ 也能控制元素的显示与隐藏

condition为true时隐藏,否则显示,代码与wx:if类似,这里不再演示。

wx:if与hidden的对比

1. 运行方式不同

  • wx:if以动态创建和一处元素的方式,控制元素的展示与隐藏
  • hidden以切换样式的方式(display:none/block;),控制元素的显示与隐藏

2. 使用建议

  • 频繁切换时,建议使用hidden
  • 控制条件比较复杂,建议使用wx:if 搭配 wx:elif、wx:else 进行展示与隐藏的切换

列表渲染 

wx:for 

通过 wx:for  可以根据指定的数组,循环渲染重复的组件结构,语法示例如下:

<view wx:for="{{array}}">索引时:{{index}},item项时{{item}}
</view>

默认情况下,当前循环项的索引用index表示,当前循环项用item表示 

手动指定索引和当前项的变量名

  • 使用wx:for-index 可以指定当前循环项的索引的变量名
  • 使用wx:for-item 可以指定当前项的变量名
<view wx:for="{{array}} wx:for-index="idx" wx:for-item="itemName">索引时:{{idx}},item项时{{itemName}}
</view>

wx:key的使用

类似于Vue列表渲染中的 :key ,小程序在实现列表渲染时,也建议为渲染出来的列表项指定唯一的key值,从而提高渲染的效率,示例代码如下:

<view wx:for="{{array}} wx:key="index">

http://www.tj-hxxt.cn/news/43762.html

相关文章:

  • 俄文网站建设方案免费的seo优化工具
  • 安阳如何建立自己的网站平台电子商务网站建设与管理
  • 杭州外贸网站建设公司价格免费数据分析网站
  • 郑州网站建设制作费用win10一键优化工具
  • 电子书推送网站怎么做色盲眼镜
  • 建立网站的意义武汉外包seo公司
  • jsp网站如何做seo360站长平台
  • 零用贷网站如何做软文营销案例分析
  • 能上传文件的网站陕西seo推广
  • 禹州网站建设做竞价推广这个工作怎么样
  • 学网站前端中国万网
  • 我司如何自己建设动态网站千锋教育培训怎么样
  • 云南网站备案长尾关键词举例
  • 精美网站制作公司网络营销培训课程
  • 做直销会员网站免费网站推广软文发布
  • 做网站树立品牌形象怎么做自己的网页
  • 怎样用html制作网站阻断艾滋病的药有哪些
  • 自己做网站用软件免费发布信息的平台有哪些
  • 泰安新闻今日头条seo方案怎么做
  • 做液压的公司网站网站网页设计
  • 快递空包网站建设广州权威发布
  • flask做大型网站开发西安百度推广怎么做
  • php 关闭网站教你如何建立网站
  • 网站申请注册 免备案制作网站的工具
  • 教育机构网站建设公司网站的seo是什么意思
  • 网站建设维护课件ppt百度的营销方式有哪些
  • 漳州网站建设哪家好免费二级域名分发平台
  • 中国万网怎么自己做网站惠州seo报价
  • 湖北省两学一做网站提高网站权重的方法
  • 怎么下载网站的视频网站seo标题是什么意思