vue3setup函数怎么用setup有哪些参数分别是干什么的,vue3如何使用emit。

1、如果使用了setup函数那么它讲会有两个参数分别是  props  和  context

2、props 是响应式的,当传入新的 props 时,它将被更新。但是,因为 props 是响应式的,你不能使用 ES6 解构,它会消除 prop 的响应性。


export default {
  props: {
    item: String
  },
  setup(props,context) { //   setup(props,{ emit } ) 解构赋值
    console.log(props.item) // 这个可以访问到props里面的值
    console.log(context.emit) // 这个可拿到emit方法
  }
}

3、 如果需要解构 prop,可以在 setup 函数中使用 toRefs 函数来完成此操作

import { toRefs } from 'vue'

setup(props) {
  const { obj } = toRefs(props)

  console.log(obj.value)
}

4、如果 obj是可选则的 prop,则传入的 props 中可能没有 obj。在这种情况下,toRefs 将不会为 obj创建一个 ref 。你需要使用 toRef 替代它:

import { toRef } from 'vue'
setup(props) {
  const obj= toRef(props, 'obj')
  console.log(obj.value)
}

 二、 setup第二参数是 Context 

 

1、传递给 setup 函数的第二个参数是 contextcontext 是一个普通 Js 对象,暴露了其它可能在 setup 中有用的值

export default {
  setup(props, context) {
    // Attribute 属性 非响应式对象,等同于 $attrs
    console.log(context.attrs)

    // 插槽 非响应式对象,等同于 $slots
    console.log(context.slots)

    // 触发事件 方法,等同于 $emit
    console.log(context.emit)

    // 暴露公共 property 函数
    console.log(context.expose)
  }
}

2、context 是一个普通的 JavaScript 对象,也就是说,它不是响应式的,这意味着你可以安全地对 context 使用 ES6 解构。

export default {
  setup(props, { attrs, slots, emit, expose }) {
    ...
  }
}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有两把刷子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值