当前位置:网站首页>微信小程序---组件开发与使用
微信小程序---组件开发与使用
2022-08-02 10:46:00 【能能爱编程】
一、前言
最近项目上需要用到抽离的组件来实现一些功能。现在将组件使用过程中的遇到的一些问题进行分享。
二、父页面引用子组件及使用
1、引用
在父页面的.json文件中,添加上组件。如下代码所示,“usingComponents”的值是一个对象,里面添加子组件。其中冒号前面的为子组件的名字(用在父页面中,可自定义),冒号后面的是子组件的路径。
{
"usingComponents": {
"rylist":"../../../components/zylist/zylist",
"inputContent":"../../../components/inputContent/inputContent",
"tips":"../../../components/tips/tips"
},
"navigationBarTitleText": "住院记录"
}2、使用
在父页面的.wxml文件中直接使用定义的组件名称,即可完成组件的使用
<inputContent></inputContent>三、父页面给子组件传参
1、传参
如果是父页面给子组件传参,那么仅需要在子组件所在的标签上添加上需要传递的名字及值即可。如下述代码所示,userinfo即为要传递的参数名,{ {userinfo}}为参数值
<inputContent id="inputContent" userinfo="{
{userinfo}}"></inputContent>2、接收参数
子组件在properties属性列表中,接收父页面传递的参数。该值是一个对象类型,可以指定数据类型及默认值及其他,这里就不一一举例。
/**
* 组件的属性列表
*/
properties: {
userinfo: {
type: Object,
value: null
}
},
子组件在其所在的wxml文件中直接使用该值即可。(就跟正常页面使用data中对象类型的值一样的使用方式)
四、子组件给父页面传参
子组件可以通过调用父页面方法的方式给父页面传参。
父页面代码:
<inputContent id="inputContent" bind:addUser="addUser" bind:cancle="cancle"></inputContent>子组件代码:
var user = {
xm: xm,
sfzhm: sfzhm,
openid: app.globalData.openID,
}
this.triggerEvent("addUser", JSON.stringify(user))子组件使用this.triggerEvent("方法名","参数')触发父页面中的方法,并传参参数;
父页面使用bind:方法名="父页面中的方法名"的方式进行接收。
父页面中的方法会有一个形参,比如e,用来接收从子组件传递的参数。如下代码:
//新增用户点击按钮
addUser: function (e) {
var that = this;
if (e != undefined) {
var type = e.type;
//当从子组件传值
if (type == "addUser") {
var userInfo = e.detail;
//新增用户信息
Util.addZyUser(userInfo)
}
}
that.setData({
showPopup: !that.data.showPopup
})
},五、其他
① 如果需要做弹窗效果,可以通过wx:if=”{ {show}}“的方法来控制显隐。
② 后续补充……
边栏推荐
- 身为程序猿——谷歌浏览器的这些骚操作你真的废吗!【熬夜整理&建议收藏】[通俗易懂]
- c#反射和特性
- Geoffery Hinton:深度学习的下一个大事件
- 软件测试的基本理论知识(软件测试面试基础知识)
- 有奖征集|TaoCloud&宝德联合举办全闪POC!
- LayaBox---TypeScript---JSX
- LayaBox---TypeScript---Module Analysis
- 一体化在线政务服务平台,小程序容器技术加速建设步伐
- Spearman's correlation coefficient
- Weak yen turns game consoles into "financial products" in Japan: scalpers make big profits
猜你喜欢

阿里CTO程立:阿里巴巴开源的历程、理念和实践

org.apache.ibatis.binding.BindingException Invalidbound statement (not found)的解决方案和造成原因分析(超详细)

iNFTnews | Seeing the two sides of the metaverse, what is the true Internet and the Internet of value?

MySQL百万数据优化总结 一

FPGA手撕代码——CRC校验码的多种Verilog实现方式 (2021乐鑫科技数字IC提前批代码编程)

STM32+MPU6050设计便携式Mini桌面时钟(自动调整时间显示方向)

WPF 截图控件之文字(七)「仿微信」

4年手工测试被应届生取代了,用血与泪的教训给xdm一个忠告,该学自动化了...

AlphaFold又放大招,剑指整个生物界!

保姆级教程:写出自己的移动应用和小程序(篇二)
随机推荐
LayaBox---TypeScript---模块解析
Deep Learning 100 Examples - Convolutional Neural Network (CNN) for mnist handwritten digit recognition
Rear tube implements breadcrumb function
You Only Hypothesize Once: 用旋转等变描述子估计变换做点云配准(已开源)
Three.JS程序化建模入门
MSYS2 QtCreator Clangd 代码分析找不到 mm_malloc.h的问题补救
Hello, my new name is "Bronze Lock/Tongsuo"
LeetCode每日一练 —— 20. 有效的括号
C#/VB.NET 添加多行多列图片水印到Word文档
c#反射和特性
3D激光slam:LeGO-LOAM---地面点提取方法及代码分析
循环结构--while循环
多大数量级会出现哈希碰撞
LayaBox---TypeScript---声明合并
21天学习挑战赛--第一天打卡(屏幕密度)
Mysql环境变量的配置(详细图解)
鸿星尔克再捐一个亿
LayaBox---TypeScript---JSX
如何搭建威纶通触摸屏与S7-200smart之间无线PPI通信?
如何选择一块真正“好用的、性能高”的远程控制软件