
wxml内容:
<view bindtap="a" data-f="{{flag}}">123</view>
<!-- wx:for="{{数组}}" 循环需要绑定key wx:key="index"-->
<!-- 自带定义 item 表示数组的每一项 index 表示数组的索引 -->
<!-- 使用wx:for-item修改每一项值的key -->
<!-- 使用wx:for-index修改每一项值的index -->
<view wx:for="{{list}}" class="t" wx:key="i"
wx:for-item="r" wx:for-index="i"
style="color:{{rstyFlag'red':''}};"
data-i="{{i}}"
bindtap="choose"
>
{{rname}}--{{i}}
</view>
js内容:
data: {
flag:1,
list:['冰墩墩','雪融融','小泡菜'],
list:[{
name:'冰墩墩',
styFlag:true
},{
name:'雪融融',
styFlag:false
},{
name:'小泡菜',
styFlag:false
}]
},
choose:function(e){
let { currentTarget:{ dataset:{i} } } = e;
/ 第一步获取点击的当前的内容的索引 /
consolelog(i)
/ 排他 把所有的先置空 /
thisdatalistforEach(r=>{
rstyFlag = false
})
thisdatalist[i]styFlag = true;
/ 数据变了 视图没变 必须要使用setData实现数据和视图的双向数据绑定 /
thissetData({
list:thisdatalist
})
},
a:function(e){
consolelog(e)
},
效果:
wxml内容:
<button bindtap="go1" style="margin: 3px;">张三</button>
<button bindtap="go2" style="margin: 3px;">李四</button>
<button bindtap="go3" style="margin: 3px;">24号</button>
<button bindtap="go4" style="margin: 3px;">不带参数</button>
<button bindtap="goBack">返回上一级</button>
<!-- wx:if 和 wx:elif 以及wx:else之间不可以被其他的标签打断 -->
<block>
<view wx:if="{{msg=='zhangsan'}}" class="t">欢迎回来主人</view>
<view wx:elif="{{msg=='lisi'}}" class="t">家里水龙头没有坏不要过来</view>
<view wx:elif="{{msg=='24'}}" class="t">您好欢迎为您服务</view>
<view wx:else class="t">显示家里没人</view>
</block>
js内容:
Page({
/
页面的初始数据
/
data: {
msg:""
},
goBack:function(){
wxnavigateBack()
},
/
生命周期函数--监听页面加载
/
onLoad: function (options) {
consolelog(optionsname)
/ 多次使用setData会影响性能 尽量把多次setData 使用一次setData来实现
尽量少的使用setData来提高小程序的性能 /
thissetData({
msg:optionsname
})
/ 如果名字叫张三 页面显示欢迎回来主人 /
/ 如果名字叫李四 页面显示家里水龙头没有坏不要过来 /
/ 如果名字叫24号 页面显示您好欢迎为您服务 /
/ 都不是 显示家里没人 /
},
/
生命周期函数--监听页面初次渲染完成
/
onReady: function () {
},
/
生命周期函数--监听页面显示
/
onShow: function () {
},
/
生命周期函数--监听页面隐藏
/
onHide: function () {
},
/
生命周期函数--监听页面卸载
/
onUnload: function () {
},
/
页面相关事件处理函数--监听用户下拉动作
/
onPullDownRefresh: function () {
},
/
页面上拉触底事件的处理函数
/
onReachBottom: function () {
},
/
用户点击右上角分享
/
onShareAppMessage: function () {
}
})
{
"pages": [
"pages/index/index",
"pages/forpage/forpage",
"pages/mypage/mypage",
"pages/logs/logs",
"pages/fenglei/fenglei"
],
"window": {
"backgroundTextStyle": "dark",
"navigationBarBackgroundColor": "#FF0000",
"navigationBarTitleText": "kw47page",
"navigationBarTextStyle": "white"
},
"tabBar": {
"color": "#fff",
"selectedColor": "#FFCA28",
"backgroundColor": "#000",
"list": [{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "",
"selectedIconPath": ""
}, {
"pagePath": "pages/logs/logs",
"text": "日志",
"iconPath": "",
"selectedIconPath": ""
}]
},
"style": "v2",
"sitemapLocation": "sitemapjson"
}
效果图:
微信小程序会话列表怎么制作 : ?
1 创建一个小程序项目,使用微信开发者工具。
2 在appjson中添加pages字段,将会话列表页面的路径添加进去。
3 在会话列表页面的js文件中,定义一个变量来存储会话列表的数据,并在onLoad函数中调用wxrequest()接口获取数据。
4 在会话列表页面的wxml文件中,使用wx:for指令遍历会话列表的数据,将数据渲染到页面上。
5 在会话列表页面的wxss文件中,定义会话列表的样式。
方法/步骤
在小程序中为了实现一个中添加多个内容重复的标签,那就需要使用循环。如果按小程序的简易教程,循环加在中,而放在里面。所有数据都会遍历到每一个中。这不是我们想要的。
在微信小程序中有个属性,是指当点击列表元素时当按下鼠标左键会显示样式,但是鼠标离开样式就会复原
核心点:模板文件中使用三元运算符,通过dateCurrent指定当前item的id。
在组件上使用控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item 事例。
接着用在标签上,以渲染一个包含多节点的结构块。
接着只需要把放入文件中就可以,把循环数据绑定到上就可以了。
1使用内置组件scroll-view
2实现点击时出现的背景样式
3使用scroll-into-view,实现点击时自动滚动
前言
本次主要内容是介绍页面tab的开发,如何实现tab与页面内容联动呢?关注我就知道!
本次效果展示
一、如何实现页面tab
1使用内置组件scroll-view
如下图所示,我们需要使用到红色框框中的属性,此属性可也实现滚动
这里有一个大坑,不管是使用scroll-x还是scroll-y遍历数据都是出现在左边一数列(这里我们只关注scroll-x、scroll-y)
<scroll-view scroll-x="true" class='scroll-view-t' :scroll-into-view="scrollinto">
<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index"
:class="currentIndex==index'active':''" @click="changeTab(index)">
{{item}}
</view>
</scroll-view>
<scroll-view scroll-y="true" :style="'height:'+scrollH+'px'">
<view v-for="(item,index) in 100 " :key='index'>
{{item}}
</view>
</scroll-view>
我们只能通过样式来改变它,让它横过来
scroll-view-t view {
display: inline-block;
font-size: 32rpx !important;
margin: 0 15rpx;
}
scroll-view-t {
white-space: nowrap;
height: 88rpx;
line-height: 88rpx;
}
2实现点击时出现的背景样式
这里我们需要定义一个默认的索引currentIndex,在通过点击事件所传出去的索引进行判断,从而获得当前所点击的对象给到样式,样式我们就用三元表达式判断赋予样式,如下点击方法
changeTab(index) { //nabbar栏点击切换
// if (thiscurrentIndex === index) return
thiscurrentIndex = index
// thisscrollinto = 'tab' + index
// if (thiscurrentIndex < 10) {
// thisscrollinto = 'tab0'
// }
},
如下是绑定的点击事件和三元表达式判断赋予样式,其中背景样式提前写好了
<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index"
:class="currentIndex==index'active':''" @click="changeTab(index)">
{{item}}
</view>
不过现在只实现了通过点击样式发生改变,感觉实现了tab切换,眼下要解决点击时tab这个导航条也要自己滚动起来,不能一边手动滚动,然后再点击吧
3使用scroll-into-view,实现点击时自动滚动
使用它的目的主要是,在点解tab时可以实现,你向那个方向点,他就往那个方向滚动,不过在点回去的时候,就有坑了,需要对其作出判断
阅读文档很难理解对吧,我在这里说说我的理解,这里是想要我们通过在scroll-view中属性scroll-into-view绑定一个元素,此元素还要获得id,此id还不能已数字开头,此id就是移动的关键,需要绑定,所遍历内容的索引,从而实现往哪里滚动,不过想点回去就需要进行判断
如下代码中在scroll-view,使用scroll-into-view绑定了一个自己定义的空元素scrollinto
在v-for遍历后获得了索引,id就通过索引进行了绑定,拼接了以tab开头
<scroll-view scroll-x="true" class='scroll-view-t' :scroll-into-view="scrollinto">
<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index"
:class="currentIndex==index'active':''" @click="changeTab(index)">
{{item}}
</view>
</scroll-view>
实现点击滚动很简单,要滚动回去就要判断了,如下代码,只要当前的thisscrollinto = 'tab' + index就能实现点击就滚动,回去是就要判断当前点击的缩影,手动赋值,给一个最好的区间,这样效果更好
changeTab(index) { //nabbar栏点击切换
if (thiscurrentIndex === index) return
thiscurrentIndex = index
thisscrollinto = 'tab' + index
if (thiscurrentIndex < 10) {
thisscrollinto = 'tab0'
}
},
以上就是关于微信小程序for循环以及页面跳转全部的内容,包括:微信小程序for循环以及页面跳转、微信小程序会话列表怎么制作、如何用for循环将微信小程序数组中的某个固定元素输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)