盼儿哥 2022-06-01 13:16 采纳率: 60%
浏览 149
已结题

vue3组合api开发方式,想将props 内容独立放到一个js文件中,但是在import后获取不到

vue3组合api开发方式,想将props 内容独立放到一个js文件中,但是在import后获取不到
问题相关代码
//props.js
import { defineProps } from 'vue'

const props = defineProps({
    apiData: {
        type: Array,
        default: () => {
            return []
        }
    }
})

export default props
//index.vue
<template></template>
<script setup>
import props from './props'

//按钮的点击事件
const handleTest = ()=> {
  console.log(props.apiData) //这里会报错:Cannot read properties of null (reading 'apiData')
}

</script>
我想要达到的结果

将props, emits 可以独立放到一个js文件中,在xx.vue内import进来,不然xx.vue内的代码会非常多

  • 写回答

2条回答 默认 最新

  • 上官熊猫 2022-06-01 16:57
    关注

    defineProps必须要放在setup里面才可以,我们可以换个思路,只将参数提出在一个独立文件中,解决方法如下:

    // props.js
    export default {
      apiData: {
        type: Array,
        default: () => {
          return [];
        },
      },
      name: {
        type: String,
      },
    };
    
    //index.vue
    <template>
      <div class="User">index.vue页面</div>
      <button @click="handleTest">点击获取props</button>
    </template>
    
    <script setup>
    import propsData from "./props";
    const props = defineProps(propsData);
    console.log(props);
    //按钮的点击事件
    const handleTest = () => {
      console.log(props.apiData);
    };
    </script>
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 已采纳回答 6月6日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统