当前位置:网站首页>微信小程序---组件开发与使用
微信小程序---组件开发与使用
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}}“的方法来控制显隐。
② 后续补充……
边栏推荐
- 3D激光slam:LeGO-LOAM---地面点提取方法及代码分析
- Why use BGP?
- 使用较广泛的安全测试工具有哪些?
- 博云入选Gartner中国DevOps代表厂商
- 行为型模式-模板方法模式
- 4年手工测试被应届生取代了,用血与泪的教训给xdm一个忠告,该学自动化了...
- LayaBox---TypeScript---Namespaces and modules
- LayaBox - TypeScript - merge statement
- LayaBox---TypeScript---Mixins
- Weak yen turns game consoles into "financial products" in Japan: scalpers make big profits
猜你喜欢

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

Do you agree with this view?Most businesses are digitizing just to ease anxiety

博云入选Gartner中国DevOps代表厂商

同样做软件测试,和月收入 3W 的学弟聊了一晚上,我彻底崩溃了

Failed to configure mysql, what's going on?

外包学生管理系统架构文档

云原生应用平台的核心模块有哪些

如何选择一块真正“好用的、性能高”的远程控制软件

软件测试岗位巨坑?阿里在职7年测试人告诉你千万别上当

365天挑战LeetCode1000题——Day 047 设计循环队列 循环队列
随机推荐
LayaBox - TypeScript - merge statement
org.apache.ibatis.binding.BindingException Invalidbound statement (not found)的解决方案和造成原因分析(超详细)
爆款视频怎么做?这里或许有答案!
LayaBox---TypeScript---JSX
Hello, my new name is "Bronze Lock/Tongsuo"
软件工程国考总结——选择题
21天学习挑战赛--第一天打卡(屏幕密度)
程序员的浪漫七夕
LayaBox---TypeScript---模块解析
MySQL模糊查询性能优化
AlphaFold又放大招,剑指整个生物界!
SVN如何删除文件名包含空格的文件
利用二维数据学习纹理三维网格生成(CVPR 2020)
如何安装dosbox(pycharm详细安装教程)
sqlmap安装教程用w+r打开(sqlyog安装步骤)
Geoffery Hinton: The Next Big Thing in Deep Learning
After 21 years of graduation, I switched to software testing. From 0 income to a monthly salary of over 10,000, I am really lucky...
行为型模式-策略模式
365天挑战LeetCode1000题——Day 047 设计循环队列 循环队列
The realization of the list