如何在不注册全局组件的情况加获得画圈的部分的长度,我的目通过循环注册组件,但不知道有没有可行的方法,也就是动态添加
没有特定的方法,但是可以从两个方面出发:
使用渲染函数(render function)实现:渲染函数可以比传统的模板更灵活,可以动态添加组件,从而达到获取画圈的长度的目的。示例代码如下:
render(h) {
// 声明一个要渲染的空数组
let components = [];
// 遍历要用到的组件
for (let i = 0; i < this.length; i++) {
// 将组件动态添加到数组中
components.push(h('circle', {
// 给组件设置属性
attrs: {
// 设置圆的长度
length: this.length
}
}));
}
// 返回数组中的所有组件
return components;
}
使用 v-for 指令实现:可以通过使用 v-for 指令,基于一个数组动态渲染组件,从而达到获取画圈的长度的目的。示例代码如下:
<template>
<div>
<!-- 使用 v-for 指令动态渲染组件 -->
<circle v-for="(item, index) in length" :key="index" :length="item"/>
</div>
</template>
<script>
export default {
data() {
return {
// 声明一个数组,存放画圈的长度
length: [1, 2, 3]
};
}
};
</script>
或许可以从 components 配置里 获取