vue3使用记录

1.组件状态驱动css

<template>
 <el-avatar :size="logoHeight"></el-avatar>
</template>

<script setup>
const logoHeight = 44
</script>

<style lang="scss" scoped>
.logo-container {
  height: v-bind(logoHeight) + 'px';
}
</style>

2.vue3监听reactive定义的响应式数据没有办法获取到正确的oldVal,ref定义的可以

watch(person,(newVal,oldVal)=>{

})
let person = reactive({
    name: '张三'
})

3.把一个reactive对象转成普通对象,或者把props转成普通对象,属性还具有响应式

//reactive
const state = reactive({
    age:15
})
const {age} = toRefs(state)

//props
const props = defineProps({
    obj: {
        type: Object
    }
})
const {obj} = toRefs(props)

4.teleport 用法 把里面的内容瞬间移动

<teleport to="#modal">
     <div id="center" v-if="isOpen"> 
     <h2><slot>this is a modal</slot></h2> 
     <button class="btn2" @click="buttonClick">Close</button> </div> 
 </teleport>

<div id="app"></div>
    //先行定义一个锚点
 <div id="modal"></div>

这样被teleport 包裹的内容就会瞬移到app平级的modal下面
 

5.defineExpose父组件调用子组件的方法

父组件:

<HelloWorld :msg="msg" ref="child"></HelloWorld>   //ref定义的东西会被劫持
const child = ref(null)
const useChild = ()=>{
  child.value?.show()
}

子组件:

import {defineExpose} from "vue";

const  show = ()=>{
  alert('组组件show了')
}
defineExpose({show})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值