微信小程序 组件传值 properties 父传子

Posted 白瑕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序 组件传值 properties 父传子相关的知识,希望对你有一定的参考价值。

文章目录


前言

Vue里props的全称为property
property的复数形式即微信小程序中的properties, 二者的使用方法也极为相似…


一、子组件准备接收

点击NavBar的项, 触发handleTap函数, 向handleTap函数内传入受点击NavBar项的index.

<view class="box">
  <view 
    wx:for="list" 
    wx:key="item" 
    class="item currentClick === index ? 'active' : ''" 
    bindtap="handleTap" 
    data-currentClick="index"
  >item</view>
</view>

然后js这边handleTap被触发, data-拿到活跃的index, 赋值给data里的currentClick拿到当前受击项的index, currentClick改变, wxml那边三元表达式判定currentClick===index, 然后把active类名加到激活项上.

//NavBar.js
Component(         //这个Components只有组件的js文件才有
  properties:      //类比props,陈列父组件向子组件传入的属性, 即在此处接收父组件传值
    list:          //list可以像data数据一样被Navbar使用
      type: Array,  //type可接受的类型, 要允许多种类型可用数组
      value: ["event1", "event2"]  //default默认值, 接收不到值时默认用
    
  ,
  data:      //组件数据, 固定数据写在这
    currentClick: 0
  ,
  methods:   //书写组件方法
    handleTap(evt) 
      var currentclick = evt.target.dataset.currentclick
      this.setData(
        currentClick: currentclick
      )
    
  
)

二、父组件传值

以下在父组件内完成:

<navbar list="['衣服', '裤子', '帽子']"></navbar>
<!--
其实这里写父组件的data里的属性也是可以的, 比如:
<navbar list="datalist"></navbar>
 -->

然后, 也可以像Vue里那样动态传值, 用双向绑定:

//父组件js里有datalist的情况下
<navbar model:list="datalist"></navbar>

总结

以上是关于微信小程序 组件传值 properties 父传子的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序创建组件以及父传子、子传父内容

微信小程序父子组件之间传值

vue 组件之间相互传值 父传子 子传父

React传值(子传父,父传子)

vue组件传值之父传子

Vue组件间传值(超全,跨代)父传子,子传父,爷传孙,孙传爷,保姆级讲解