• 微信小程序关联组件


    在小程序中可以通过relations字段建立组件间的关系,即关联。这个关系是祖先和后代的关系。就像vue中的组件有子组件、孙子组件一样,这样就能实现子组件向父组件传递数据。小程序也可以实现类似的效果,并实现数据传递。

    小程序中实现组件关联的方式,主要是通过relations字段,表现形式为两种。

    1. 直接引用组件
    // 父组件
    
    {
    	relations:{
    		'./child/index':{
    			type:'child'
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在父组件中引入子组件的路径作为键,并配置type说明引入的组件是什么类型,child表示子节点,即./child/index路径的组件是当前组件的子组件。

    relations:{
    	'./parent/index':{
    		type:'parent'
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在子组件中引入父组件路径作为键,并配置type说明引入的组件是什么类型,parent表示父组件,即./parent/index路径的组件是当前组件的父组件。

    1. 通过behavior引入一类组件
    // 父组件
    
    const parent = require('../../behaviors/parent');
    relations:{
     'parent':{
          type:'descendant',
          target:parent
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在父组件中引入behaviors注册为descendant即后代组件,target表示子节点所包含的behaviors,只要组件中的behaviors中含有parent就都会被关联为子组件。

    // 子组件
    const parent = require('../../behaviors/parent');
    behaviors:[parent],
    relations:{
    	'./parent/index':{
    		type:'ancestor'
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在子组件中引入父组件的路径注册为祖先组件。

    产生关联关系后,需要在有些时候获取到父组件或子组件以获取组件的数据,这时候通常使用getRelationNodes()方法获取。

    获取父组件,在调用getRelationNodes时传递父组件的路径

    // 子组件
    
    getRelationNodes('./parent/index');
    
    • 1
    • 2
    • 3

    这样就能获取父组件了,获取子组件也是同样的方法。

    // 父组件
    getRelationNodes('./parent/index');
    
    • 1
    • 2

    这样就能获取子组件了,不过在使用behaviors关联子组件后,获取子组件可以直接传递behavior获取

    // 父组件
    {
    relations:{
    	'parent':{
    		// ……
    	}
    }
    methods:{
    	getChild(){
    		getRelationNodes('parent');
    	}
    }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    这个parent是在父组件relations中注册的键名。

  • 相关阅读:
    Linux内核基础 - list_splice_tail_init函数详解
    【白话科普】从“熊猫烧香”聊聊计算机病毒
    AM@闭区间上连续函数的性质定理@一致连续性
    【Jmeter】安装配置:Jmeter 下载 MySQL JDBC 驱动
    融合GPT大模型产品,WakeData新一轮产品升级
    架构师总结了22条API设计的最佳实践
    美食杰项目(二)首页
    【P1008 [NOIP1998 普及组] 三连击】
    【计算机网络】HTTP协议
    SCM供应链管理系统实施困难及解决方案
  • 原文地址:https://blog.csdn.net/qq_40850839/article/details/128008104