小程序循环和路由

128 阅读1分钟

if判断

  • wx:if="{{}}"
  • wx:elif="{{}}"
  • wx:else 循环

wx:for="{{}}"

<!--pages/forpage/forpage.wxml-->
<!-- <view class="t" wx:if="{{flag==1}}">我是可爱的小墩墩</view>
<view class="t" wx:elif="{{flag==2}}">我是冰墩墩</view>
<view class="t" wx:elif="{{flag==3}}">我是雪融融</view>
<view class="t" wx:else>我是可恶的小泡菜</view>
<button bindtap="qie">切换</button> -->
<!-- data-传动态的值 需要加{{}}绑定 -->
<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:{{r.styFlag?'red':''}};"
    data-i="{{i}}"
    bindtap="choose"
>
    {{r.name}}--{{i}}
</view>
<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>
// pages/forpage/forpage.js
const util2 = require('../../utils/util2')
Page({
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // console.log( util2.pingjie('hello','小瘦子') )
        // let b = util2.isFlag(this.data.list,'styFlag')
        // console.log(b)
        /* Date.now() 产生一个当前的时间戳 */
        let time = util2.isTime( Date.now() )
        console.log(time)
       
    },
    go1:function(){
        /* 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 */
        wx.navigateTo({
          url: '/pages/logs/logs?name=zhangsan',
        })
    },
    go2:function(){
      /* 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 */
        wx.switchTab({
          url: '/pages/index/index?name=lisi',
        })
    },
    go3:function(){
       /*  关闭所有页面,打开到应用内的某个页面 */
        wx.reLaunch({
          url: '/pages/fenglei/fenglei?name=24',
        })
    },
    go4:function(){
        /* 使用redirectTo是无法使用navigateBack返回的*/
        /* 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。 */
        wx.redirectTo({
            url: '/pages/fenglei/fenglei',
        })
    },

    /**
     * 页面的初始数据
     */
    data: {
        flag:1,
        list:['冰墩墩','雪融融','小泡菜'],
        list:[{
            name:'冰墩墩',
            styFlag:true
        },{
            name:'雪融融',
            styFlag:false
        },{
            name:'小泡菜',
            styFlag:false
        }]
    },
    choose:function(e){
        let { currentTarget:{ dataset:{i} } } = e;
        /* 第一步获取点击的当前的内容的索引 */
        console.log(i)
        /* 排他 把所有的先置空 */
        this.data.list.forEach(r=>{
            r.styFlag = false
        })
        this.data.list[i].styFlag = true;
        /* 数据变了 视图没变 必须要使用setData实现数据和视图的双向数据绑定 */
        this.setData({
            list:this.data.list
        })
    },
    a:function(e){
        console.log(e)
    },
    qie:function(){
        this.setData({
            flag:3
        })
    },