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

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 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真
  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?
  • ¥15 YOLOv8obb获取边框坐标时报错AttributeError: 'NoneType' object has no attribute 'xywhr'
  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?