vue3:v-for与props联合使用渲染列表

思路

封装一个带有v-for的组件 需要用时只需要调用并实现动态渲染 优点是节约代码 使代码结构更加简洁

1、子组件的封装

<template>
  <ul>
<!-- v-for的基本格式,item:自己定义的单个项目的名字 list:自己定义的数组的名字 -->
    <li v-for="item in list" :key="item">{
         
  { item.name }}</li>
  </ul>
</template>

<script>
export default {
            
     
  name: "yanshi",
  props: {
            
     
//规定list类型为array 即数组,不需要规定数组中变量的类型 
//父组件传给它什么类型就是什么类型
    list: Array,
  },
};
</script>

2、子组件的调用

<script>
// import调用子组件
import yanshi from "./yanshi.vue";

export default {
            
     
name: App, 
// 注册子组件
// tip:一定要使用组件哦!不然会报错哒!
components:{
            
     
    yanshi,
}
}
</script>

3、父组件数据的传输

<template>
  <div>
    <!-- 使用子组件 -->
    <!-- 绑定子组件list 为父组件的要传输的变量的名字(自己定义) -->
    <yanshi :list="fatherListName"></yanshi>
  </div>
</template>

<script>
// import调用子组件
import yanshi from "./yanshi.vue";

export default {
            
     
  name: "App",
//   用data函数返回数组数据
  data() {
            
     
    return {
            
     
        // 这里的fatherListName是自己定义的与子组件那个list绑定的数组,注意区分
        // 注意要写成数组的形式
        fatherListName:[
            {
            
     name:这是数组中第一组数},
            {
            
     name:这是数组中第二组数},
            {
            
     name:这是数组中第三组数},
            {
            
     name:这是数组中第四组数},
        ]
    };
  },
};
</script>

Tip:一定要将v-for写在子组件中

// 要在黑暗的地方努力发光,不是救赎,是蜕变。

经验分享 程序员 微信小程序 职场和发展