小程序常用的 API 以及简单交互

微信开发者工具常用的API

WXML 框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。

<view> >> <div>

<text> >> <span>

<navigator> >> <a>

数据绑定:使用 Mustache 语法(双大括号)将变量包起来
wxml

<view>{{message}}</view>

page.js

Page ({
	data: {
		message: 'hello 小程序'
	}
})

除此之外,组件属性需要用到数据、控制属性条件渲染时、关键字(false&true)以及运算等也需要遵循此语法。

条件渲染:
wxml

<view wx:if="{{view == 'web'}}"> Web </view>
<view wx:elif="{{view == 'app'}}"> App </view>
<view wx:else="{{view == 'book'}}"> Book </view>
<view hidden="{{condition}}"> 我是隐藏的 </view>

page.js

Page ({
	data: {
		view: 'Web',
		condition: true
	}
})

wx:if 和 hidden 的区别:
wx:if 的惰性,当初始渲染条件为 false 时,框架什么都不做,组件不会被渲染到页面上,有更高的切换消耗;
hidden 的组件始终会被渲染,只是简单的控制显示与隐藏,有更高的初始渲染消耗。
如果需要频繁切换的情景:hidden
如果运行时条件不大可能改变:wx:if

block wx:if
wx:if 是一个控制属性,需要将它添加到一个标签上。
如果需要一次性判断多个组件标签,可以用 <block></block> 标签将多个组件包起来,并在 <block> 上使用 wx:if 控制属性。

<block> 并不是一个组件,仅仅是一个包装元素,不会再页面上做任何渲染,只接受控制属性。

列表渲染:
wxml

<view wx:for="{{arr}}" wx:for-index="index" wx:for-item="item" wx:key="item.name"> {{idx}} : {{item}} : {{item.name}} </view>
// 定义列表的各参数
<view wx:for="{{arr}}" > {{item}} </view>  
// {{item}} 为列表的每一项

page.js

Page ({
	data: {
		arr: [
			{ name: "chen" },
			{ name: "kofe" }
		]
	}
})

简单交互

页面跳转传参:

app.json

"pages": [
	"pages/index/index",
	"pages/test/test"
]

index.wxml

<navigator url="/pages/test/test?id=1"> go to test </navigator>

test.js

onLoad: function(options){
	console.log(options)   // {id: "1"}
}

改变data里的变量:

pages.js

Page ({
	data: {
		str: "123456",
		arr: [1,2,3,4,5,6],
		obj: {id: 1, name: "chen"}
	}
}),
reverseStr: function() {
	this.setData({ str: this.data.str.split('').reverse().join('') })
},
pushItem: function() {
	let last = this.data.str[this.data.arr.length - 1] + 1
	let newArr = [last]
	this.data.arr = this.data.arr.concat(newArr)
	this.setData({ arr: this.data.str })
},
changeObjName: function() {
	// 注意此处写法
	this.setData({ "obj.id": "2" })
},
changeColor: function() {
	this.setData({ condition: !this.data.condition })
}

示例 1:实现点击按钮反转文字

wxml

<view> {{str}} </view>
<button bindtap="reverseStr"> 反转按钮 </button>

示例 2:实现点击按钮改变 data 中数组

wxml

<view wx:for="{{arr}}">
	{{index}} : {{item}}  // 可以通过 {{index}} 和 {{item}} 直接访问列表的下标和每一项而不用在标签中定义
</view>
<button bindtap="pushItem"> 添加按钮 </button>

示例 3:实现点击按钮改变 data 中对象

wxml

<view>{{obj.id}}:{{obj.name}}</view>
<button bindtap="changeObjName"> 改变按钮 </button>

改变 class:

wxml

<view class="{{condition ? 'active' : ''}}">  我会改变颜色 </view>
<button bindtap="changeColor"> 改变颜色 </button>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值