Vue 组件三种export暴露方式和import引入方式

所有 .vue结尾的文件都是一个组件,代表的是一个小的功能。所有这样的组件最后都得交给App.vue 这一父组件所管理。要想把子组件数据和逻辑显示必须子组件在自己的vue文件内export暴露,,然后在App.vue中引入import才行。

一:export暴露方式

school.vue的Vue.extend:

const school = Vue.extend({
        data(){
            return{
               name:'博立中学',
               address:'芮城县'           
            }
        },
        methods:{

        }
 })

1.export方式 直接加extend:

extend const school = Vue.extend({})

2.export方式 统一暴露:

const school = Vue.extend({
        data(){
            return{
               name:'博立中学',
               address:'芮城县'           
            }
        },
        methods:{

        }
 })
export school

3.export方式 默认暴露:

const school = Vue.extend({
        data(){
            return{
               name:'博立中学',
               address:'芮城县'           
            }
        },
        methods:{

        }
 })
export default school

这一种可以简写如下(用的最多):而且该组件的方法和数据以及其它都写在export default中

export default {
        //代表组件名称,最好与 school.vue中的school一致
        name:'school',
          data(){
            return{
               name:'博立中学',
               address:'芮城县'           
            }
        },
        methods:{
        }
}

特别注意:

//代表组件名称,最好与 school.vue中的school一致
 name:'school',
export输出方式可以输出一个或多个,
而export default只能输出一个,

二:import引入方式

在App.vue中:

<script>
//组件引入或者页面引入
import school from './components/school.vue'
//方法引入得加{}
import {hunhe2} from '../mixin'

将文件作为一个整体引入则是使用:import xxx from ‘路径’。
引入文件的一部分或某些部分的时候会使用带{}的方式:import { xxx } from ‘路径’。

特别注意:

上面school 要和子组件export default 的 name:‘school’, 中school保持一致。

顺便说下路径问题:

在这里插入图片描述

  1. ./ 后面的包或文件与当前组件处于同一级(这一层级目录,同处于components下面)
    在listope.vue中import 引入itemope.vue:
import itemope from './itemope.vue'

2.../ 上一级目录
在student.vue中import 引入mixin.js。../代表src这一级目录。mixin就在src下面

import {hunhe2} from '../mixin'
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中,子组件暴露方法有两种常用的方式。一种是通过使用`defineExpose`手动暴露属性和方法,另一种是使用`ref`来绑定子组件,并通过访问`变量名.value`来获取子组件内的属性和方法。 首先,通过使用`defineExpose`手动暴露属性和方法。在子组件中,你可以将需要暴露的属性和方法定义在`defineExpose`内。例如,在子组件中定义一个属性`name`和一个方法`sayHello`,然后在`defineExpose`中将它们暴露出来,像这样: ``` // 子组件 defineExpose({ name: '子组件名称', sayHello() { console.log('Hello from 子组件'); } }); ``` 然后,在父组件中,你可以通过`ref`来引用子组件,并通过访问`变量名.value`来获取子组件暴露出来的属性和方法。像这样: ``` // 父组件模板 <template> <子组件 ref="变量名"></子组件> </template> // 父组件逻辑 <script> import { ref } from 'vue'; export default { setup() { const 子组件引用 = ref(null); // 访问子组件暴露的属性和方法 const 子组件名称 = 子组件引用.value.name; 子组件引用.value.sayHello(); return { 子组件引用 }; } }; </script> ``` 另外一种方式是通过将子组件的实例赋值给一个变量,然后通过`变量名.子组件内属性`来获取子组件内的属性和方法。例如: <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vue3/ 父组件 ref 获取子组件内属性或方法 子组件 defineExpose 暴露方法 或 属性 总结、](https://blog.csdn.net/m0_64494670/article/details/128667877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue 组件三种export暴露方式import引入方式](https://blog.csdn.net/weixin_41987908/article/details/127490370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值