首页 > 其他分享 >vue3的setup函数的使用

vue3的setup函数的使用

时间:2022-12-23 21:12:50浏览次数:50  
标签:count 函数 setup attrs vue3 ref expose

 

setup的使用:
1.setup 函数时,它将接受两个参数:(props、context(包含attrs、slots、emit))

context包含三个参数,可通过解构方式写
context该上下文对象是非响应式的,可以安全地解构:
 
export default {
  setup(props, { attrs, slots, emit, expose }) {
    // Attribute(非响应式的对象,等价于 $attrs)
    console.log(attrs)
 
    // 插槽(非响应式的对象,等价于 $slots)
    console.log(slots)
 
    // 触发事件(函数,等价于 $emit)
    console.log(emit)
 
    // 暴露公共 property(函数)
    console.log(expose)
  }
}

 

2.setup函数执行时机是在beforeCreated和created两个周期函数之前
3.setup里面没有vue实例,故想通过this访问会是undefined,即第一张图提示文字所述
4.setup函数中所定义的所有变量和方法,谨记要return出去,否则在vue文件(模板)中无法使用
5.在渲染函数中可以直接使用在同一作用域下声明的响应式状态:

import { h, ref } from 'vue'
 
export default {
  setup() {
    const count = ref(0)
    return () => h('div', count.value)
  }
}

 


6.子组件组件内部的方法想暴露给父组件通过ref方式去获取使用,通过expose方法即可

import {  ref } from 'vue'
 
export default {
  setup(props, { expose }) {
    const num= ref(0)
    const count = ref(0)
    const increment = () => ++count.value
    expose({
      count,
      increment
    })
  }
}
父组件: <child ref='childCom'></child>
调用:   this.$refs.childCom.increment  // 成功,可以获取到对应方法
调用:   this.$refs.childCom.count      // 成功,可以获取到对应值
调用:   this.$refs.childCom.num        // 失败,不可以获取到对应值
expose未导出的属性,父组件中调用就会是undefined,未暴露的属性父方法是拿不到的

 

标签:count,函数,setup,attrs,vue3,ref,expose
From: https://www.cnblogs.com/liangzailiu/p/17001631.html

相关文章

  • 函数的调用机制
    哪怕是高级语言编写的程序,函数”调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。不过,这和条件分支、循环的机制有所不同,因为单纯的跳转指令无法实现函数......
  • C++:构造函数与拷贝控制
    什么是构造函数构造函数(constructor)是类的一种特殊的成员函数,它被用于控制类的初始化过程、初始化对象的数据成员。无论何时只要类的对象被创建,都会执行构造函数,不同的初......
  • python:函数1
    函数:是组织好的,可重复使用的,用来实现特定功能的代码段。为了得到一个针对特定需求、可供重复利用的代码段提高程序的复用性,减少重复性代码,提高开发效率     ......
  • python:函数2
             ......
  • 函数
    前言:在了解循环语句之后,我们开始了解函数,函数是C语言学习的重中之重,函数就相当于C语言代码的工具,可以极大的方便我们编程前提回顾:在了解函数之前,我们先练习一下循环的一道经......
  • 获取当前函数名 __FUNCTION__ 的使用
    vs项目中见过这种获取当前函数名的调用。觉得挺方便的就记录一下。==============================================================转载地址:http://blog.csdn.net/daf......
  • ramda- 函数式编程库
    npminstallramdaimport*asRfrom'ramda'R.and(true,true);//=>trueR.and(true,false);//=>falseR.and(false,true);//=>falseR.and(false,false......
  • Oracle函数汇总
      SQL函数日期函数:可以进行算术运算 SYSDATE返回系统日期selectsysdatefromdual;ADD_MONTHS(<d>,<i>)返回日期d加上i个月后的新日期(i正可负)。......
  • vue3 ref 传参
    1 子组件Demo里:<scriptsetup>import{ref}from'vue'letceshi=ref(520)defineExpose({//通过defineExpose将子组件内部数据暴露给父组件!!!!c......
  • 关于gets函数和scanf函数
    关于gets函数和scanf函数,都会在末尾上加‘\0’的,要不然字符串就无法结束了。他们的不同在于,scanf在碰到缓冲区的空字符时(TAB,空格,换行,回车)时会自动截断并添加0.而gets函......