Vue笔记-Setup

Setup

Vue官方文档:https://cn.vuejs.org/guide/extras/composition-api-faq.html

setup()

「基础使用:在setup中通过ref和reactive创建响应式数据」




Props和context

props就是父组件传入的属性;context是上下文对象,里面有attrs,slots,emit,expose

父组件


子组件

export default {
  props: ['name'],
  setup(props, context) {
    console.log('我是' + props.name);
    console.log(context.attrs)
    console.log(context.emit)
    console.log(context.slots)
    console.log(context.expose)
  }
}

context中的expose是做什么的?

expose官方称为:暴露公共属性,就是用来暴露给父组件的属性用的,「暴露出去的属性在父组件可以访问到,没有暴露的属性获取不到」,会是undefined。

子组件:在子组件中有name和age两个数据,只暴露出name数据


父组件:父组件获取到name,获取不到age




data和setup中有相同的数据时会用哪个?

当data中有一个name,setup中也有一个name时,会用哪个呢?答案是setup, 「当有相同名称的数据时候setup中的会代替data中的,也就是setup比data优先级高」


使用渲染函数h

在setup中一般是返回一个json对象,里面是data数据。但是setup也可以返回一个渲染函数。

因为返回的是渲染函数,渲染函数只是渲染当前是组件内容,没有返回其他数据。所以返回函数的话数据就只能在组件内部使用,不能在组件外部访问,因为没有return数据。

那怎么办呢?对了,可以使用expose将数据暴露出去就可以了


本文由 mdnice 多平台发布

你可能感兴趣的:(vue.js)