千家信息网

微信小程序组件间关系怎么定义和使用

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,这篇文章主要介绍"微信小程序组件间关系怎么定义和使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"微信小程序组件间关系怎么定义和使用"文章能帮助大家解决问题。
千家信息网最后更新 2025年11月12日微信小程序组件间关系怎么定义和使用

这篇文章主要介绍"微信小程序组件间关系怎么定义和使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"微信小程序组件间关系怎么定义和使用"文章能帮助大家解决问题。

  组件间关系

  定义和使用组件间关系

  有时需要实现这样的组件:

  item 1

  item 2

  这个例子中, custom-ul 和 custom-li 都是自定义组件,它们有相互间的关系,相互间的通信往往比较复杂。此时在组件定义时加入 relations 定义段,可以解决这样的问题。示例:

  // path/to/custom-ul.js

  Component({

  relations: {

  './custom-li': {

  type: 'child', // 关联的目标节点应为子节点

  linked: function(target) {

  // 每次有custom-li被插入时执行,target是该节点实例对象,触发在该节点attached生命周期之后

  },

  linkChanged: function(target) {

  // 每次有custom-li被移动后执行,target是该节点实例对象,触发在该节点moved生命周期之后

  },

  unlinked: function(target) {

  // 每次有custom-li被移除时执行,target是该节点实例对象,触发在该节点detached生命周期之后

  }

  }

  },

  methods: {

  _getAllLi: function(){

  // 使用getRelationNodes可以获得nodes数组,包含所有已关联的custom-li,且是有序的

  var nodes = this.getRelationNodes('path/to/custom-li')

  }

  },

  ready: function(){

  this._getAllLi()

  }

  })

  // path/to/custom-li.js

  Component({

  relations: {

  './custom-ul': {

  type: 'parent', // 关联的目标节点应为父节点

  linked: function(target) {

  // 每次被插入到custom-ul时执行,target是custom-ul节点实例对象,触发在attached生命周期之后

  },

  linkChanged: function(target) {

  // 每次被移动后执行,target是custom-ul节点实例对象,触发在moved生命周期之后

  },

  unlinked: function(target) {

  // 每次被移除时执行,target是custom-ul节点实例对象,触发在detached生命周期之后

  }

  }

  }

  })

  注意:必须在两个组件定义中都加入relations定义,否则不会生效。

  关联一类组件

  有时,需要关联的是一类组件,如:

  

  

  input

  

  submit

  custom-form 组件想要关联 custom-input 和 custom-submit 两个组件。此时,如果这两个组件都有同一个behavior:

  // path/to/custom-form-controls.js

  module.exports = Behavior({

  // ...

  })

  // path/to/custom-input.js

  var customFormControls = require('./custom-form-controls')

  Component({

  behaviors: [customFormControls],

  relations: {

  './custom-form': {

  type: 'ancestor', // 关联的目标节点应为祖先节点

  }

  }

  })

  // path/to/custom-submit.js

  var customFormControls = require('./custom-form-controls')

  Component({

  behaviors: [customFormControls],

  relations: {

  './custom-form': {

  type: 'ancestor', // 关联的目标节点应为祖先节点

  }

  }

  })

  则在 relations 关系定义中,可使用这个behavior来代替组件路径作为关联的目标节点:

  // path/to/custom-form.js

  var customFormControls = require('./custom-form-controls')

  Component({

  relations: {

  'customFormControls': {

  type: 'descendant', // 关联的目标节点应为子孙节点

  target: customFormControls

  }

  }

  })

关于"微信小程序组件间关系怎么定义和使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

节点 组件 关联 周期 实例 对象 生命 目标 程序 两个 知识 祖先 行业 问题 移动 不同 复杂 实用 有序 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东正规软件开发费用是多少 APP软件开发csobtk 数据库总体设计的主要内容包括 崩坏3pc端在哪选服务器 网络安全防溺水 诺基亚6681软件开发 歌曲可以放到数据库吗 綦江区网络安全审计系统咨询费用 公安部公民信息数据库比对无效 软件开发与设计是理学还是工学 线上教育平台软件开发上市公司 软件开发的最大问题是 工厂服务器数据可以保存多久 东城区综合软件开发服务保障 网络安全风险和应对措施 苏州阿里云服务器成本低 凤凰网络安全科技馆 免费外网服务器app 软件开发 小规模 税率 网易江西网络安全竞答 数据库可以直接复制走么 自学软件开发哪些书籍 如何将查询结果转做成数据库脚本 nosql数据库在生活中的应用 财务软件开发成本明细科目 畅想之星光盘数据库 网络安全重要性论文1200 云寓网络技术天津有限公司 如何创造服务器在我的世界里 广州企学宝培训软件开发
0