当前位置: 首页 > 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 

http://www.dtcms.com/a/133797.html

相关文章:

  • 基础算法 —— 前缀和 【复习总结】
  • [特殊字符] 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++红黑树
  • 时间的重构:科技如何重塑人类的时间感知与存在方式
  • 【大模型系列篇】深度研究智能体技术演进:从DeepResearch到DeepResearcher,如何重构AI研究范式
  • 深度访谈:数据中台的本质不是技术堆砌,而是业务引擎的重构
  • c++进阶-继承01
  • 加固笔记本:无人机领域智能作业的可靠算力中枢
  • 交易模式革新:Eagle Trader APP上线,助力自营交易考试效率提升
  • 区块链技术在数据隐私保护中的应用:从去中心化到零知识证明
  • 【Java】面向对象程序三板斧——如何优雅设计包、封装数据与优化代码块?
  • Spring Boot 微服务中集成 MyBatis-Plus 与集成原生 MyBatis 有哪些配置上的不同?
  • java开发中的设计模式之单例模式