码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【微信小程序开发(四)】小程序快速实战经典问题导航


    文章目录

    • 前言
    • 一、[wx:key的使用及wx:key的值](https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/list.html#wx:key)
    • 二、wx:for的用法
    • 二、点击事件绑定和传参
    • 三、关于微信小程序style动态绑定问题
    • 四、父组件给子组件动态传值
    • 五、获取向上滚动的动态距离
    • 六、子组件调用父组件的方法
    • 七、微信小程序如何实现页面传参?
    • 八、微信小程序连续点击多次跳转页面问题的解决办法
    • 九、style 绑定的动态的背景图 background-size失效


    前言

    提示:微信api文档中更细致,有精力可以直接阅读,该内容只做导航 总结


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、wx:key的使用及wx:key的值

    示例:和vue的:key基本是一致的 不加会有warning 提示

    一般使用

    wx:key="unique"
    
    • 1

    字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
    保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。

    二、wx:for的用法

    和刚刚在同一个文档可以看到,wx:for和vue不同的是,他需要自己指定循环变量名字和index,也就是vue中的(item,index)in list

    使用 wx:for-item 可以指定数组当前元素的变量名,
    使用 wx:for-index 可以指定数组当前下标的变量名

    <view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
      {{idx}}: {{itemName.message}}
    </view>
    
    • 1
    • 2
    • 3

    二、点击事件绑定和传参

    1 点击事件用 bindtap绑定

    <view>{{ msg }}view>
    <button bindtap="clickMe">点击我button>
    
    • 1
    • 2
    Page({
      clickMe: function() {
        this.setData({ msg: "Hello World" })
      }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2 bindtap传递参数

    <view bindtap="goTo" data-index={{item.index}}>
    
    • 1
    goTo: function(e){
        // 传递的参数
        const index= e.currentTarget.dataset['index'];
    }
    
    • 1
    • 2
    • 3
    • 4

    三、关于微信小程序style动态绑定问题

    在这里需要有一个模板占位的思想 class动态绑定也是这样 包括animation

    style="z-index:{{card.zIndex?card.zIndex:199 - card_index}}"
    
    • 1

    四、父组件给子组件动态传值

    父组件正常传递一个动态变量

    <nav-bar title="冥想" scrollTop="{{scrollTop}}">nav-bar>
    
    • 1

    子组件 监听处理 observer: ‘update’,

    // component/navBar/navBar.js
    Component({
        /**
         * 组件的属性列表
         */
        properties: {
            scrollTop: {         
                type: String,    
                value: '0',     
                observer: 'update',
            }
        },
    
        /**
         * 组件的方法列表
         */
        methods: {
            update(newValue) {
                let op = 0;
                if (newValue != 0 && newValue <= 40) {
                    op = newValue / 40
                }
                if (newValue >= 40) {
                    op = 1;
                }
                this.setData(
                    {
                        opacity: op
                    }
                )
        	},
        }
    })
      
      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    五、获取向上滚动的动态距离

    onPageScroll(t) {
        this.setData({
            scrollTop: t.scrollTop
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    六、子组件调用父组件的方法

    子组件 调用init 传递参数

    this.triggerEvent('init', this.data.voiceArr[this.data.currentSelectIndex]);
    
    • 1

    父组件绑定 bind:init 实现changeVoiceInit 方法

    <change-voice bind:closeVoiceShow="closeVoiceShow" bind:changeVoice="changeVoice" bind:init="changeVoiceInit" index="6">change-voice>
    
    • 1

    七、微信小程序如何实现页面传参?

    在需要传入的连接后 添加 参数 ?type=
    wx.navigateTo({url: e.currentTarget.dataset[‘link’] + ‘?type=’+e.currentTarget.dataset[‘type’]+‘&index=’+e.currentTarget.dataset[‘index’]})

     onLoad: function(options) {
         //  options.type 即可获取  类似query
     }
    
    • 1
    • 2
    • 3

    八、微信小程序连续点击多次跳转页面问题的解决办法

    用节流函数也可以,记个标记 1秒内只执行一次

    this.data.navigateToFlag = true;
    setTimeout(()=>{
      this.data.navigateToFlag = false;
    },1000)
    wx.navigateTo({url: '/pages/result/index?times=29&type=3&content=呼吸'})
    
    • 1
    • 2
    • 3
    • 4
    • 5

    九、style 绑定的动态的背景图 background-size失效

    把 background-size 也放在绑定后置即可

    <view class="container" style="background: url('{{currentVoice.img}}') no-repeat;background-size: 100% 100%;">
    
    • 1
  • 相关阅读:
    L1-7 分寝室(Python)
    【工具】Java请求带http重定向的地址 自动进行重定向
    shell——随机数(RANDOM)+ expect 自动应答
    Flutter基础学习(一)Dart语言入门
    Linux MQTT智能家居项目(网络基础知识)
    C# 图像灰化处理方法及速度对比
    最全指令系统详解
    ArcGIS实现矢量区域内所有要素的统计计算
    单细胞分析+实验验证,多重buff加身,学会你也能发7分+。
    蓝绿部署:实现无缝可靠的软件发布
  • 原文地址:https://blog.csdn.net/sinat_29843547/article/details/125888624
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号