微信小程序中基础入门

本文详细介绍了微信小程序中的数据绑定原理,Mustache语法的应用,从内容绑定、属性绑定到运算,以及动态绑定。此外,涵盖了事件绑定的常见事件如bindtap,事件传参技巧,如bindinput,以及条件渲染(wx:if、hidden比较)、列表渲染和rpx单位。
摘要由CSDN通过智能技术生成

一、数据绑定

1.数据绑定的基本原则

① 在data中定义数据(在.js文件)

 

② 在wxml中使用数据

 

2.Mustache语法的格式

把data中的数据绑定到页面中进行渲染,使用MUstache语法(双大括号,可以理解为vue中的插值表达式)

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

① 绑定内容

② 绑定属性

③ 运算(三元运算,算术运算等)

4.动态绑定属性(注:无需:)

 

 二、事件绑定

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

常用事件:

 事件对象的属性列表:

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

 bindtap语法格式:

 三、事件传参与数据同步

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

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

//wxml内容
<button type="primary" bindtap="btnCount">点击+1</button>
//.js文件内容
data: {
    count:0
  },
  
btnCount(){
this.setData({
  count:this.data.count+1
})
},

2.事件传参

小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。可以为组件提供data-*自定义属性传参,其中*代表的是参数的名字,最终可以通过event.target.dataset.参数名 即可获取到具体参数值。

<!-- wxml内容 data-自定义属性名 不加{{}}传的是字符串 -->
<button type="primary" bindtap="btnCount" data-info="{{2}}">点击传参</button>
//.js内容
data: {
    count:0
  },
  
btnCount(e){
this.setData({
  count:this.data.count+e.target.dataset.info
})
},

 3.bindinput的语法格式

<!-- wxml内容 -->
<input type="text" bindinput="getValue"/>

//.js文件 
//实时拿到输入框值
getValue(e){
console.log(e.detail.value);
},

实现输入框和data之间的数据同步

<!-- wxml内容 第二步 -->
<input value="{{info}}" type="text" bindinput="getValue"/>
/* .wxss文件 第三步 */
input{
  border:1px solid black;
  margin: 5px;
  padding: 5px;
  border-radius: 3px;
}

//.js  第一步
 data: {
    info:"你好"
  },
  
//第四步
getValue(e){
this.setData({
  info:e.detail.value
})
},

四、条件渲染

1.wx:if="{{属性名}}",wx:elif和wx:else

<view wx:if="{{type===1}}">
  A
</view>
<view wx:elif="{{type===2}}">
  B
</view>
<view wx:else>
  C
</view>


data: {
   type:1
  },

2.结合<block>使用wx:if

如果要一次性控制多个组件的显示与隐藏,可以使用此标签,将多个组件包起来,并在标签上使用wx:if控制属性(注:<block>不是一个组件,只是一个包裹容器,不会再页面上有任何渲染)

<block wx:if="{{false}}">
  <view>
    A
  </view>
  <view>
    B
  </view>
</block>

3.hidden

在小程序中,直接使用hidden="{{flag}}",也能控制属性的显示与隐藏

4.wx:if与hidden对比

① 运行方式不同

wx:if:动态的创建和移除元素,控制元素的显示与隐藏

hidden:以(display:none/block)控制元素的显示与隐藏

② 使用建议

频繁切换时,使用hidden

控制条件复杂时,建议wx:if

五、列表渲染

<view wx:for="{{arr}}">
  index为{{index}},item为{{item}}
</view>


  data: {
    arr:["苹果","香蕉","橘子"]
  },

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

使用wx:for-index可以指定当前项的索引的变量名

使用wx:for-item可以指定当前项的变量名

<view wx:for="{{arr}}" wx:for-index="inx" wx:for-item="name">
  index为{{inx}},item为{{name}}
</view>

2.wx:key的使用

类似于vue列表渲染中的:key,小程序渲染的列表也建议指定唯一key值,从而提高渲染效率

<view wx:for="{{list}}" wx:key="id">
  {{item.name}}
</view>


 list:[
      {id:1,name:"张三"},
      {id:2,name:"李四"},
      {id:3,name:"王二"},
    ]

六、rpx介绍

1.什么是rpx尺寸单位

rpx是微信小程序独有的,用来解决屏适配的尺寸单位。

2.rpx的实现原理

rpx的实现原理非常简单:鉴于不同的设备屏幕的大小不同,为了实现屏幕的自动适配,rpx把所有的设备的屏幕,在宽度上等分为750份(即:当前屏幕的总宽度为750rpx)

小程序在不同设备上运行的时候,会自动把rpx的样式单位换算成对应的像素单位来渲染,从而实现屏幕适配。

① 在较小的设备上,1rpx所代表的宽度较小。

② 在较大的设备上,1rpx所代表的宽度较大。

七、样式导入

使用wxss提供的@import语法,可以导入外联的样式表。

1.@import的语法格式

@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。

1.定义类名
<view class="username" wx:for="{{list}}" wx:key="id">
  {{item.name}}
</view>

2.新建一个以.wxss为后缀公共文件,并写入样式
.username{
  color:red;
}

3.在自带的.wxss文件导入
@import "../list/common/common.wxss";

2.全局样式

定义在app.wxss中的样式为全局样式,作用于每一个页面。

首先在app.json定义一个新的文件
  "pages/test/test",

在新文件.wxml中和list文件的.wxml中写入内容
<view>123</view>

最后在app.wxss文件定义样式
view{
  padding: 10rpx;
  margin: 10rpx;
  background-color: aqua;
}

2.局部样式

在页面的.wxss文件中定义的样式为局部样式,只作用于当前页面。

注意:

① 当局部样式和全局样式冲突时,根据就近原则,局部样式会覆盖全局样式。

② 当局部样式的权重大于或等于全局样式的权重时,才会覆盖全局的样式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值