利用v-bind集体传递props参数

一般上我们利用v-bindprops传参时,会单个传输props属性。这里我们可以使用v-bind进行多个props属性的传参,只要属性名对应即可识别。
本例子中,父组件通过props向子组件传入namesex等基本信息,子组件接收参数并展示出来“
父组件:

<template>
  <div class='parent'>
// 原先的方法
<!--    <Children :name="person.name"-->
<!--              :sex="person.sex"/>-->
// 现在的方法
    <Children v-bind="person" />
  </div>
</template>

<script>
import Children from './children';
import { defineComponent, ref} from 'vue';

export default defineComponent({
  name: 'parent',
  components: {
    Children
  },
  setup() {
    const person = ref({
      name: 'ab',
      sex: '男'
    })
    return {
      person: person.value,
    }
  }
});

子组件:

<template>
  <div class='children'>
    我叫{{name}},我的性别是{{sex}}
  </div>
</template>

<script>
export default {
  name: 'children',
  props: {
    name: String,
    sex: String,
  }
};
</script>
  • v-bind打包传输的props属性,可以被重复传入;
  • 同一属性多次传入,后者会覆盖前者;
  • 可以再分别传入其他没被打包的属性。

父组件:

<template>
  <div class='parent'>
<!--    <Children :name="person.name"-->
<!--              :sex="person.sex"/>-->
    <Children sex="女"
              v-bind="person"
              age="13"
              name="小明"/>
  </div>
</template>

<script>
import Children from './children';
import { defineComponent, ref} from 'vue';

export default defineComponent({
  name: 'parent',
  components: {
    Children
  },
  setup() {
    const person = ref({
      name: 'ab',
      sex: '男'
    })
    return {
      person: person.value,
    }
  }
});
</script>

子组件:

<template>
  <div class='children'>
    我叫{{name}},我的性别是{{sex}},年龄是{{age}}
  </div>
</template>

<script>
export default {
  name: 'children',
  props: {
    name: String,
    sex: String,
    age: Number,
  }
};
</script>
效果示意.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容