当前位置: 首页 > news >正文

微信小程序组件传参

微信小程序组件传参感觉和vue还是挺像的

父组件向子组件传参

在小程序中父组件子组件传参,主要使用properties属性。演示下:

创建组件文件夹component,创建组件demoComponent,记得创建的时候选择组件,不是page页面

 组件代码,这里简单写了一个tab栏,动态判断绑定类名

<view class="tablist">
<view class="tabitem {{item.id==active ?'active' :''}}" wx:for="{{tablist}}"> {{item.name}}</view>
</view>

在 properties里面生命一个active,来实现当前选中项,值为number类型

// component/demoComponent/demoComponent.js
Component({/*** 组件的属性列表*/properties: {active:{type:Number}},/*** 组件的初始数据*/data: {tablist:[{id:1,name:'全部'},{id:2,name:'零食'},{id:3,name:'饮料'},],},/*** 组件的方法列表*/methods: {}
})

 

.tablist{display: grid;grid-template-columns: repeat(3,1fr);
}
.tabitem{text-align: center;padding: 10px 0;
}
.active{border-bottom: 3px solid blue;
}

在页面中使用的时候,需要在json中声明

{"usingComponents": {"demoComponent":"/component/demoComponent/demoComponent"}
}

这里传入active为2 

<demoComponent active='2' />

当组件渲染的时候,第二项被赋上active样式

子向父传参 

使用自定义事件,triggerEvent。这点和vue非常相似,传入两个参数,第一个参数为自定义事件名,第二个为传递的值。演示下,稍微修改下组件代码

绑定事件

<view class="tablist">
<view bind:tap="sendInfo" class="tabitem {{item.id==active ?'active' :''}}" wx:for="{{tablist}}"> {{item.name}}</view>
</view>

 使用triggerEvent来传递数据(组件js代码,写在methods中)

 sendInfo(){const data={name:'zs',age:12}this.triggerEvent('sendData',data)}

父组件接受

<demoComponent active='2' bind:sendData="getData"/>getData(e){console.log('e',e.detail);},

当点击组件的时候,可以从控制台看到拿到从子组件传递的值了

跨组件传参 

建议使用全局变量,在微信小程序中,全局变量写在app.js中globalData对象里面,在页面中通过getApp() 方法即可访问到app.js里面的方法和全局变量。全局方法不需要写在methods里面,和globalData同一级的

  globalData: {myInfo:{name:'aaaaa',age:1231212}},getMethosFunc(){console.log('获取app.js的方法');}
 onLoad(options) {const app=getApp();console.log('myinfo',app.globalData.myInfo);app.getMethosFunc();},

end 

相关文章:

  • 基础算法 —— 前缀和 【复习总结】
  • [特殊字符] KoalaAI 1.0.23 震撼升级:GPT-4.1免费畅享,AI革命触手可及!
  • Node.js 操作 MySQL 数据库
  • MySQL:存储函数和存储过程
  • 基于vue2+ElementUI的el-tree封装一个带搜索的树形组件
  • 【差分隐私相关概念】瑞丽差分隐私(RDP)-瑞丽散度约束了贝叶斯因子后验变化
  • 前端与Java后端交互出现跨域问题的14种解决方案
  • 使用 Node.js、Express 和 React 构建强大的 API
  • 4.15【A】pc homework3~
  • python实战案例:玩具销售数据分析
  • Java基础-泛型(泛型擦除)
  • 【redis】初识redis
  • 实验二.单按键控制LED
  • 自定义Jackson序列化和反序列化
  • 家用发电机的原理是什么?
  • 【STM32】在FreeRTOS下使用硬件SPI收发数据出现的时序耦合问题(WK2124芯片为例)
  • 使用 Sass 打造动态星空背景效果
  • 远方游子的归家记:模仿美食网页的制作与实现
  • React JSX?
  • C++红黑树
  • 泉州一家婚介机构广告牌越南新娘七天闪婚领证?市监部门介入
  • 中年人多活动有助预防阿尔茨海默病
  • 美权威人士批“特朗普对进口电影征关税”:将杀死美电影产业
  • 叙利亚多地遭以色列空袭
  • 孙一凡的东欧狂想音乐会:一场穿越东欧的听觉绮梦
  • 以色列消防部门:已控制住耶路撒冷山火