VUE -- defineExpose

这篇具有很好参考价值的文章主要介绍了VUE -- defineExpose。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义

defineExpose定义:用于组件通信中父级组件调用操作子组建方法和响应式属性参数能力

在使用definExpose前需要了解两个拷贝对象函数

对象copy:shallowReactive 与 数据 copy:shallowRef

这两个都是vue包里面的


简单带过一下

shallowReactive :处理对象最外层属性的响应式(浅响应式)。
shallowRef:只处理基本数据类型的响应式, 不进行对象的响应式处理。


demo

<template>
    
    
    <div>
        <el-button>
            方法: {{ method }}
        </el-button>
        
        <el-button>: {{ num }}
        </el-button>
        
        <el-button>
            {{ props.name }}
        </el-button>
    </div>

</template>

<script lang="ts" setup>


const props = withDefaults(defineProps<{
    name: string
}>(), {
    name: "默认值"
    
})


const num = ref(123)
const method = ref("")

function changMethod(){
    method.value="父类调用了这个方法改变了值"
}


defineExpose({
    num,
    changMethod
})

</script>

子组建定义了一个响应式值和一个方法

<template>
    <edit ref="editInfo" :name=ref1></edit>
    
    <el-button @click="handleClick()">传入子类按钮</el-button>
    <el-button @click="handleClick1()">改变子类属性按钮</el-button>
    <el-button @click="handleClick2()">调用子类方法按钮</el-button>
    
    
</template>
<script lang="ts" setup>
import Edit from './edit.vue'
import EditPopup from "@/views/permission/admin/edit.vue";

const editInfo = shallowRef(Edit)

console.log("editInfo",editInfo)

let ref1 = ref();


function handleClick() {
    ref1.value = "你好"
}

function handleClick1(){
    editInfo.value.num=222
    
}
function handleClick2(){
    editInfo.value.changMethod()
}

</script>

父组建定义了两个按钮,分别是调用操作子组建的值,和调用子组建的方法

定义了 const editInfo = shallowRef(Edit) 将子组建的属性copy了一份 叫做 editinfo
并且指定了这份数据处理对象 <edit ref="editInfo" :name=ref1></edit>

由ref 挂靠。后面是一些操作图片

VUE -- defineExpose文章来源地址https://www.toymoban.com/news/detail-466825.html

到了这里,关于VUE -- defineExpose的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端Vue自定义精美上下滚动通告栏组件 常用于展示公告信息 上下滚动跑马灯 上下滚动广播

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月09日
    浏览(65)
  • inject: [‘reload‘] 是一个在 Vue.js 组件中常见的语法,用于将父组件中定义的 reload 方法注入到子组件中。

    详细解释如下: inject : 这是 Vue.js 提供的一个选项,允许子组件从父组件中注入数据、方法等。 [\\\'reload\\\'] : 这表示子组件想要从父组件中注入名为  reload  的方法或数据。 在给定的代码片段中, reload  方法被注入到了子组件中,使得子组件可以直接调用这个方法。这通常用于

    2024年01月19日
    浏览(40)
  • VUE -- defineExpose

    defineExpose 定义:用于组件通信中父级组件调用操作子组建方法和响应式属性参数能力 在使用 definExpose 前需要了解两个拷贝对象函数 对象copy: shallowReactive 与 数据 copy: shallowRef 这两个都是vue包里面的 简单带过一下 shallowReactive :处理对象最外层属性的响应式(浅响应式)。

    2024年02月07日
    浏览(30)
  • 【Vue3】defineExpose

    defineExpose 是 Vue 3.2 引入的一个新 API,它是 script setup 的配套 API 之一。在 script setup 中,所有定义的变量和函数默认是私有的,不能从组件外部访问。如果你想让外部组件访问到 script setup 内定义的属性或方法,你需要使用 defineExpose 显式地暴露它们。 这是 defineExpose 的基本用

    2024年02月21日
    浏览(45)
  • 前端Vue仿美团地址管理组件列表组件 可用于电商平台收获地址管理

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月16日
    浏览(40)
  • vue3第二十一节(新增编译宏defineExpose)

    引言 :在 vue2 中我们可以使用 this.$refs.xxx 调用组件内部的属性或者方法,同时子组件也可以使用 this.$parent.xxx 调用父组件的属性和方法; 但是 当我们在 setup 语法糖中,因为此时的组件 默认是关闭即组件是私有的 ,故使用 $parent.xxx 或者 $children.xxx 是 无法获取到对应的实例

    2024年04月24日
    浏览(40)
  • vue3,动态引入组件,同时动态设置组件的name,用于keep-alive缓存

    如果有两个页面逻辑大都相同,咱们想到的第一个肯定是写一个组件,然后两个路由都指向这个组件。 那如果现在多添加一个需求:两个页面在切换路由时都需要缓存数据,并且两个页面的缓存数据要求独立。 这个需求很简单:在router-view外层包裹一个keep-alive组件,指定缓

    2024年02月14日
    浏览(45)
  • 前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用

    前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用, 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下: 自定义顶部搜索框 用于搜索跳转使用方法 HTML代码实现部分

    2024年02月09日
    浏览(52)
  • vue3,vite开发, 动态引入组件,同时动态设置组件的name,用于keep-alive缓存

    如果有两个页面逻辑大都相同,咱们想到的第一个肯定是写一个组件,然后两个路由都指向这个组件。 那如果现在多添加一个需求:两个页面在切换路由时都需要缓存数据,并且两个页面的缓存数据要求独立。 这个需求很简单:在router-view外层包裹一个keep-alive组件,指定缓

    2024年02月07日
    浏览(45)
  • keep-alive 是 Vue 的一个内置组件,用于缓存其他组件的实例,以避免重复渲染和销毁,它可以在需要频繁切换的组件之间提供性能优化

    目录 keep-alive  使用 keep-alive 的示例代码: 手动清除组件缓存的示例代码: keep-alive 组件有以下几个优点: keep-alive 的原理: 使用 keep-alive 组件,你可以包裹需要缓存的组件,然后这些组件在切换时将会被缓存起来,而不是每次都重新创建。 使用 keep-alive 的示例代码: 我们

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包