[Vue3] - defineProps 接收从App.vue传来的东西

在Person.vue中用defineProps接收从App.vue传来的东西

基本类型

App.vue

<template>
  <Person a="Hi" b="H"/>
</template>
  
<script lang="ts" setup name="App">
  import Person from './components/Person.vue'
</script>

Person.vue

<template>
    <div class="person">
      <!-- 可以直接打印接收到的a -->
      {{ a }} 
    </div>
</template>


<script lang="ts" setup name = "Person">
  import {defineProps} from 'vue'

  // 接收a
  let x = defineProps(['a', 'b']) // 必须以数组形式接收,不管传入的是1个还是多个
  console.log(x)
</script>


<style scoped>
  /* 可以添加样式 */
</style>

对象类型

App.vue

<template>
  <!-- 加‘:’了就是表达式,是表达式就会执行,这里会读取personList -->
  <Person :list="personList"/> 
  <!-- 但是ref不用加冒号,是特例 -->
</template>
  
<script lang="ts" setup name="App">
  import Person from './components/Person.vue'
  import {reactive} from 'vue'
  import {type Persons} from '@/types'

  let personList = reactive<Persons>([
    {id:'No1', name:'Jack', age:11},
    {id:'No2', name:'Rose', age:12, x:'xx'}, // 如果希望x部分对象有,部分没有,需要在接口增加一个‘?’
    {id:'No3', name:'Pete', age:13}
  ])

  console.log(personList)

</script>

<style scoped>
/* 可以添加一些样式 */
</style>

Person.vue

<template>
    <div class="person">
      <ul>
        <li v-for="p in list" :key="p.id"> {{ p.name }} {{ p.age }}</li>
      </ul>
    </div>
</template>

<script lang="ts" setup name = "Person">
  // import {defineProps} from 'vue' //defineXXX 可以不用引入,因为是宏函数
  import { type Persons } from '@/types';

  // 接收list
  
  
  withDefaults( // withDefaults()指定默认值 
    defineProps<{list?:Persons}>(), // 限制person对象的具体属性 问号使得App.vue传不传list过来都不报错
    {list:()=>[{id:'1', name:'Logan', age: 299}]} 
  )

</script>


<style scoped>
  /* 可以添加样式 */
</style>

相关推荐

  1. [Vue3] - defineProps 接收App.vue传来东西

    2024-03-23 15:24:03       21 阅读
  2. 学习Vue3defineProps方法

    2024-03-23 15:24:03       30 阅读
  3. vue3defineProps详解

    2024-03-23 15:24:03       18 阅读
  4. vue3.3优化了defineProps和defineEmits写法

    2024-03-23 15:24:03       15 阅读
  5. Vue3】setup通过defineProps获取props为null

    2024-03-23 15:24:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-23 15:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-23 15:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-23 15:24:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-23 15:24:03       20 阅读

热门阅读

  1. vuex状态管理的使用

    2024-03-23 15:24:03       19 阅读
  2. css的box-shadow详解

    2024-03-23 15:24:03       17 阅读
  3. 从零开始设计,自主可控。Solon v2.7.2 发布!

    2024-03-23 15:24:03       19 阅读
  4. LeetCode_32_困难_最长有效括号

    2024-03-23 15:24:03       21 阅读
  5. 纯前端导出Excel

    2024-03-23 15:24:03       21 阅读
  6. 使用docker搭建Fluentd的教程

    2024-03-23 15:24:03       16 阅读
  7. 【NC16610】Hankson的趣味题

    2024-03-23 15:24:03       18 阅读
  8. 富格林:拆穿黑幕套路维护资金安全

    2024-03-23 15:24:03       19 阅读
  9. zynq Lwip学习笔记-recv_callback函数

    2024-03-23 15:24:03       18 阅读