首页 > 其他分享 >移动端tree组件父子组件联动。

移动端tree组件父子组件联动。

时间:2024-09-27 19:12:16浏览次数:1  
标签:count itemLevel tree isParent 联动 组件 itemName children parentItem

 

<!--
 * @Author: yeminglong
 * @Date: 2024-09-27 10:14:30
 * @LastEditors: yeminglong
 * @LastEditTime: 2024-09-27 16:49:05
 * @Description:
 -->
<script>
import TreeItem from '@/views/test/TreeItem.vue'

export default {
	name: 'TreeList',
	components: { TreeItem },
	props: {
		data: Array,
		props: {
			label: 'name',
			children: 'children'
		},
		nodeKey: String
	},
	provide: {
		// 当前选中的节点
		currentNode: {
			data: null
		}
	},
	watch: {
		data: {
			handler(data) {
				const { props } = this
				const treeList = []
				const deep = (list = [], parent = null) => {
					for (const item of list) {
						const node = {
							checked: false,
							isHalf: false,
							data: item,
							children: []
						}
						if (!parent) {
							treeList.push(node)
						} else {
							parent.children.push(node)
						}

						if (
							item[props.children] &&
							item[props.children].length
						) {
							deep(item.children, node)
						}
					}
				}

				deep(data, null)
				this.treeList = treeList
			},
			deep: true,
			immediate: true
		}
	},
	data() {
		return {
			treeList: []
		}
	},
	methods: {
		change({ checked }) {
			const children = this?.children ?? []
			const count = children.filter(v => v.checked).length
			if (!checked && count > 0) {
				return false
			}
			this.checked = checked
		}
	}
}
</script>

<template>
	<div>
		<div
			class="root-item"
			v-for="(item, index) in treeList"
			:key="`children-${(nodeKey && item.data[nodeKey]) || index}`"
		>
			<TreeItem
				:half-value.sync="item.isHalf"
				:value="item.checked"
				@input="value => (treeList[index].checked = value)"
				:node-key="nodeKey"
				:props="props"
				:data="item.data"
				:label="item.data[props.label]"
				:children="item.children"
				@change="change"
			>
				<template #label="{ data, label }">
					<slot name="label" v-bind="{ data, label }">
						{{ label }}
					</slot>
				</template>
			</TreeItem>
		</div>
	</div>
</template>

<style scoped lang="scss">
.root-item {
	//background: #f5f8fd;
	//border-radius: 12px;
	//padding: 38px 50px;
	margin: 20px 0 20px 0;
}
</style>

 

<!--
 * @Author: yeminglong
 * @Date: 2024-09-25 09:57:50
 * @LastEditors: yeminglong
 * @LastEditTime: 2024-09-27 18:14:55
 * @Description:
 -->
<script>
export default {
	name: 'TreeItem',
	inject: ['currentNode'],
	props: {
		level: {
			type: Number,
			default: 0
		},
		halfValue: Boolean,
		value: Boolean,
		nodeKey: String,
		props: {
			label: 'name',
			children: 'children'
		},
		data: Object,
		label: String,
		children: Array
	},
	computed: {
		isHalf() {
			const children = this.children || []
			const checkedList = children.filter(v => v.checked && !v.isHalf)

			if (!children.length) {
				return false
			}
			return (
				children.length !== checkedList.length ||
				children.filter(v => v.isHalf).length > 0
			)
			// if (children.length && checkedList.length) {
			// 	return children.length !== checkedList.length
			// }
			// return false
		}
	},
	watch: {
		value: {
			handler(checked) {
				this.checked = checked
			},
			immediate: true
		},
		isHalf(halfValue) {
			this.$emit('update:halfValue', halfValue)
		},
		checked(checked) {
			this.$emit('input', checked)
			this.$emit('change', { checked, data: this.data })
			if (this.level >= this.currentNode.data?.level) {
				this.checkedChildren(checked)
			}
		}
	},
	data() {
		return {
			checked: false,
			foldUp: false
		}
	},
	methods: {
		handleClick() {
			const checked = !this.checked
			this.currentNode.data = { checked, ...this.$props }
			this.checked = checked
		},

		checkedChildren(checked) {
			const children = this?.children
			if (children && children.length) {
				for (const child of children) {
					child.checked = checked
				}
			}
		},
		change({ checked }) {
			const children = this?.children ?? []
			const count = children.filter(v => v.checked).length
			if (!checked && count > 0) {
				return false
			}
			this.checked = checked
		}
	}
}
</script>

<template>
	<div class="tree-item" :class="`tree-item-${level}`">
		<div class="tree-item-header">
			<!--<van-checkbox-->
			<!--	v-model="checked"-->
			<!--	shape="square"-->
			<!--	@click.native="handleClick"-->
			<!--&gt;-->
			<!--	<slot name="label" v-bind="{ data, label }">-->
			<!--		{{ label }}-->
			<!--	</slot>-->
			<!--</van-checkbox>-->

			<div class="checkbox-box">
				<span
					class="checkbox-box-toggle"
					:class="{ 'is-foldUp': foldUp }"
					:style="{
						visibility: children.length ? 'visible' : 'hidden'
					}"
					@click="
						() => {
							foldUp = !foldUp
						}
					"
				>
					<van-icon name="arrow" v-if="children.length" />
				</span>
				<span @click="handleClick">
					<span
						class="checkbox-box-input"
						:class="{ 'is-half': isHalf, 'is-checked': checked }"
					>
						<span class="half-line" v-if="isHalf"></span>
						<svg-icon
							class="checkbox-box-input-icon"
							icon-class="common-checked"
							v-if="checked && !isHalf"
						/>
					</span>
					<slot name="label" v-bind="{ data, label }">
						{{ label }}
					</slot>
				</span>
			</div>
		</div>
		<div
			class="tree-item-sub"
			v-if="children && children.length"
			v-show="foldUp"
		>
			<TreeItem
				v-for="(item, index) in children"
				:key="`children-${(nodeKey && item.data[nodeKey]) || index}`"
				:level="level + 1"
				:half-value.sync="item.isHalf"
				:value="item.checked"
				@input="value => (children[index].checked = value)"
				:node-key="nodeKey"
				:props="props"
				:data="item.data"
				:label="item.data[props.label]"
				:children="item.children"
				@change="change"
			>
				<template #label="{ data }">
					<slot name="label" v-bind="{ data, label }">
						{{ label }}
					</slot>
				</template>
			</TreeItem>
		</div>
	</div>
</template>

<style scoped lang="scss">
.tree-item {
	//margin: 5px 0 5px 0;
}

.tree-item-header {
	//margin-bottom: 20px;
}

.checkbox-box {
	display: inline-flex;
	align-items: center;

	> span {
		display: inline-flex;
		align-items: center;
	}

	.checkbox-box-toggle {
		width: 20px;
		height: 20px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		font-size: 15px;
		&.is-foldUp {
			transform: rotate(90deg);
		}
	}

	.checkbox-box-input {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 20px;
		height: 20px;
		border-radius: 5px;
		border: 1px solid rgb(200, 201, 204);
		background: #fff;
		color: #fff;
		margin-right: 10px;
		cursor: pointer;
		overflow: hidden;

		:deep(.checkbox-box-input-icon) {
			width: 15px;
			height: 15px;
			overflow: hidden;
		}

		&.is-checked {
			background: #0262f1;
		}

		.half-line {
			height: 2px;
			width: 60%;
			background: #fff;
		}
	}
}

.tree-item-sub {
	margin-left: 30px;
}
</style>

 

调用组件

 

<template>
    <TreeList :data="treeData" node-key="id" :props="{
					label: 'itemName',
					children: 'children'
				}" @change="change">
        <template #label="{ data }">
            {{ data.itemName }}({{ data.count }})
        </template>
    </TreeList>
</template>
<script>
export default {
    name: 'index',
    data() {
        return {
            treeData: [{
                    "id": "JDBF",
                    "itemName": "测试节点-01",
                    "itemLevel": 1,
                    "parentItem": "ALL",
                    "itemIndex": "1",
                    "itemClass": "1",
                    "isParent": "1",
                    "count": 16680,
                    "children": [{
                            "id": "AIR",
                            "itemName": "测试节点-01",
                            "itemLevel": 1,
                            "parentItem": "JDBF",
                            "itemIndex": "4",
                            "itemClass": "1",
                            "isParent": "1",
                            "count": 4169,
                            "children": [{
                                    "id": "AIR_04",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "AIR",
                                    "itemIndex": "32",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 0,
                                    "children": [{
                                            "id": "AIR_04_01",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_04",
                                            "itemIndex": "45",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_04_02",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_04",
                                            "itemIndex": "46",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        }
                                    ]
                                },
                                {
                                    "id": "AIR_03",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "AIR",
                                    "itemIndex": "31",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 0,
                                    "children": [{
                                        "id": "AIR_03_01",
                                        "itemName": "测试节点-03",
                                        "itemLevel": 3,
                                        "parentItem": "AIR_03",
                                        "itemIndex": "42",
                                        "itemClass": "1",
                                        "isParent": "0",
                                        "count": 0,
                                        "children": []
                                    }]
                                },
                                {
                                    "id": "AIR_02",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "AIR",
                                    "itemIndex": "30",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 174,
                                    "children": [{
                                            "id": "AIR_02_05",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_02",
                                            "itemIndex": "41",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_02_04",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_02",
                                            "itemIndex": "40",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 119,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_02_03",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_02",
                                            "itemIndex": "39",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 36,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_02_02",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_02",
                                            "itemIndex": "38",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 19,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_02_01",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_02",
                                            "itemIndex": "37",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        }
                                    ]
                                },
                                {
                                    "id": "AIR_01",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "AIR",
                                    "itemIndex": "29",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 3995,
                                    "children": [{
                                            "id": "AIR_01_05",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_01",
                                            "itemIndex": "48",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_01_04",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_01",
                                            "itemIndex": "36",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 77,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_01_03",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_01",
                                            "itemIndex": "35",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 3852,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_01_02",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_01",
                                            "itemIndex": "34",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "AIR_01_01",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "AIR_01",
                                            "itemIndex": "33",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 66,
                                            "children": []
                                        }
                                    ]
                                }
                            ]
                        },
                        {
                            "id": "PWXK",
                            "itemName": "测试节点-01",
                            "itemLevel": 1,
                            "parentItem": "JDBF",
                            "itemIndex": "2",
                            "itemClass": "1",
                            "isParent": "1",
                            "count": 5236,
                            "children": [{
                                    "id": "PWXK_002",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "PWXK",
                                    "itemIndex": "6",
                                    "itemClass": "1",
                                    "isParent": "0",
                                    "count": 124,
                                    "children": []
                                },
                                {
                                    "id": "PWXK_004",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "PWXK",
                                    "itemIndex": "8",
                                    "itemClass": "1",
                                    "isParent": "0",
                                    "count": 2172,
                                    "children": []
                                },
                                {
                                    "id": "PWXK_003",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "PWXK",
                                    "itemIndex": "7",
                                    "itemClass": "1",
                                    "isParent": "0",
                                    "count": 0,
                                    "children": []
                                },
                                {
                                    "id": "PWXK_001",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "PWXK",
                                    "itemIndex": "5",
                                    "itemClass": "1",
                                    "isParent": "0",
                                    "count": 158,
                                    "children": []
                                },
                                {
                                    "id": "PWXK_005",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "PWXK",
                                    "itemIndex": "9",
                                    "itemClass": "1",
                                    "isParent": "0",
                                    "count": 2782,
                                    "children": []
                                }
                            ]
                        },
                        {
                            "id": "WATER",
                            "itemName": "测试节点-01",
                            "itemLevel": 1,
                            "parentItem": "JDBF",
                            "itemIndex": "3",
                            "itemClass": "1",
                            "isParent": "1",
                            "count": 7275,
                            "children": [{
                                    "id": "WATER_03",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "WATER",
                                    "itemIndex": "12",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 151,
                                    "children": [{
                                        "id": "WATER_03_01",
                                        "itemName": "测试节点-03",
                                        "itemLevel": 3,
                                        "parentItem": "WATER_03",
                                        "itemIndex": "26",
                                        "itemClass": "1",
                                        "isParent": "0",
                                        "count": 151,
                                        "children": []
                                    }]
                                },
                                {
                                    "id": "WATER_04",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "WATER",
                                    "itemIndex": "13",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 0,
                                    "children": [{
                                            "id": "WATER_04_02",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_04",
                                            "itemIndex": "28",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_04_01",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_04",
                                            "itemIndex": "27",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        }
                                    ]
                                },
                                {
                                    "id": "WATER_02",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "WATER",
                                    "itemIndex": "11",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 333,
                                    "children": [{
                                            "id": "WATER_02_05",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_02",
                                            "itemIndex": "24",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 133,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_02_06",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_02",
                                            "itemIndex": "25",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_02_03",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_02",
                                            "itemIndex": "22",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 32,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_02_04",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_02",
                                            "itemIndex": "23",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 160,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_02_02",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_02",
                                            "itemIndex": "21",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 8,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_02_01",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_02",
                                            "itemIndex": "20",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        }
                                    ]
                                },
                                {
                                    "id": "WATER_01",
                                    "itemName": "测试节点-02",
                                    "itemLevel": 2,
                                    "parentItem": "WATER",
                                    "itemIndex": "10",
                                    "itemClass": "1",
                                    "isParent": "1",
                                    "count": 6791,
                                    "children": [{
                                            "id": "WATER_01_08",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "47",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_01_03",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "16",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 5129,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_01_07",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "19",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 1,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_01_05",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "18",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 0,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_01_04",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "17",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 1643,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_01_02",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "15",
                                            "itemClass": "1",
                                            "isParent": "0",
                                            "count": 3,
                                            "children": []
                                        },
                                        {
                                            "id": "WATER_01_01",
                                            "itemName": "测试节点-03",
                                            "itemLevel": 3,
                                            "parentItem": "WATER_01",
                                            "itemIndex": "14",
                                            "itemClass": "1",
                                            "isParent": "1",
                                            "count": 15,
                                            "children": []
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                },
                {
                    "id": "RCZL",
                    "itemName": "测试节点-01",
                    "itemLevel": 1,
                    "parentItem": "ALL",
                    "itemIndex": "1",
                    "itemClass": "2",
                    "isParent": "1",
                    "count": 0,
                    "children": []
                }
            ]
        }
    },
    methods: {
        change({ checked, data }) {}
    }
}
</script>

 

放出来一下效果图

 

用到的图标资源

 

标签:count,itemLevel,tree,isParent,联动,组件,itemName,children,parentItem
From: https://www.cnblogs.com/yeminglong/p/18436400

相关文章

  • antv x6 注册vue组件 响应传值
    使用antvx6vue组件创建节点信息-当节点过于复杂可以考虑,避免使用markup\attr过于复杂  官网antv-vue组件示例1、使用inject接收父组件传值import{Graph}from'@antv/x6'import{register}from'@antv/x6-vue-shape' importTestNodefrom'./test1.vue'......
  • HarmonyOS开发之WaterFlow组件
    在HarmonyOS应用开发中,瀑布流布局因其灵活性和美观性而广受欢迎。HarmonyOSNEXT提供了强大的WaterFlow组件,可以帮助开发者轻松实现瀑布流布局,并支持多种自定义布局和性能优化特性。本文将通过两个具体场景,详细介绍如何使用WaterFlow组件实现页面滑动加载和吸顶效果。场景一:瀑......
  • RIP与动态BFD联动
    概述通常情况下,RIP通过定时接收和发送更新报文来保持邻居关系,在老化定时器时间内没有收到邻居发送的更新报文则宣告邻居状态变为Down。老化定时器的缺省值为180s,如果出现链路故障,RIP要经过180s才会检测到。如果网络中部署了高速数据业务,在此期间将导致数据大量丢失。BFD能够提......
  • RIP与BFD联动
    应用环境RIP和BFD相关联后,一旦链路发生故障,BFD在毫秒级时间内感知该故障并通知RIP协议,然后路由器在路由表中删除掉故障链路的路由并快速启用备份路径,提高了路由协议的收敛速度,如图4.8所示。(1)AR1、AR2、AR3及AR4建立RIP邻接。经过路由计算,AR1到达AR4的路由下一跳为AR2。在AR......
  • uniapp [全端兼容] - 详细实现日历“平铺方式“直接在页面上显示出来,而并非嵌套在弹出
    前言如果您需要“纯弹框式”日历,请访问这篇文章。在uni-app全平台兼容(H5网页网站、支付宝/微信小程序、安卓App、苹果App、nvue)开发中,详解实现让日历以平铺、全屏的形式直接放到页面上,而并非常见的弹框及弹出式窗口才能打开日历进行选择,uniApp不套在弹框里的日历插......
  • 鸿蒙(HarmonyOS)--声明式UI、自定义组件
    目录1.基础语法概述2.声明式UI描述2.1创建组件2.1.1无参数2.1.2有参数2.2配置属性2.3配置事件 2.4配置子组件3.自定义组件3.1创建自定义组件3.1.1基本使用3.1.2组件属性、方法3.1.3通用样式事件 3.2页面和自定义组件生命周期3.2.1自定义组件的创建......
  • JEMETE自恢复保险丝可保护USB Type-C连接器免受静电放电和过热影响的组件
    自恢复保险丝保护USBType-C连接器 今天的消费者已经很快地对采用USB-C或USB-TypeC通信接口标准的移动设备变得依赖——从智能手机和平板电脑到可穿戴设备和笔记本电脑。因此,设计针对静电放电 (ESD) 和过热条件的强大保护从未像现在这样重要。 为了处理更高的数据传输速率......
  • vue父子组件的生命周期加载顺序
    vue父子组件的生命周期加载顺序官网里vue组件的生命周期钩子汇总列举如下:生命周期单个vue组件的生命周期执行顺序已经非常熟悉了。但是,如果有嵌套组件,父子组件的生命周期的执行顺序是什么呢?嵌套组件又分为2种情况:一种是在template直接引入(大部分场景),另一种是element......
  • Hadoop三大组件之HDFS(二)
    HDFS常用操作命令Hadoop分布式文件系统(HDFS)提供了灵活且高效的文件管理方式,类似于Linux文件系统。本文将介绍常用的HDFS操作命令,帮助您更好地掌握HDFS的基本操作。1.查看HDFS内容HDFS的目录结构与Linux类似,顶层目录为/。1.1通过浏览器查看可以通过......
  • 类组件中的 React Hook
    介绍在某些情况下,我们假设您必须在基于react类的组件中使用reacthook概念。但是正如你所知,如果你想在基于类的组件中直接使用它们,反应钩子只能在功能组件中工作。它将出现错误。那么如何做呢,有一个解决方案。有3步解决方案创建自定义hook,(你可以直接使用hook,但不会获得更多好......