vue3 setup详解

setup组合式api,新增生命周期钩子,在onBeforeMount之前。
同时删除 beforeCreate created。
setup接收两个参数 props 和 context

 setup(props, context) {

    const {attrs, slots, emit, expose} = context //非响应式可以解构                                              					  // 如果式响应式用 toRefs解构
    console.log(attrs.msg)    //非响应式对象,等同于 $attrs                  
    console.log(slots) //非响应式对象,等同于 $slots
    console.log(emit)  //$emit 触发事件
    console.log(expose) // 暴露公共属性或者函数(主要向父组件暴露)
    const test = ref(0)
    expose({   // 暴露给父组件一个方法或者属性
        demo(){ // 如果父组件想要使用该函数,用ref获取子组件的元素。在
        		//该元素身上有该属性。
            console.log('111111111')
        },
        test
    })
    return {
      test,
      add(){
        test.value += 1
      }
    }

  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中,使用组合式API的方式来编写组件,其中setup函数是必须的。在setup函数中,可以使用一些特定的生命周期钩子函数来处理组件的生命周期事件。具体的生命周期钩子函数如下: 1. beforeCreate:在实例初始化之后,数据观测和事件配置之前被调用。 2. created:在实例创建完成后被立即调用。在这一步,实例已经完成了数据观测、属性和方法的运算,但是还没有挂载到DOM中。 3. beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。 4. mounted:实例挂载完成后调用,此时组件已经被渲染到页面上。 5. beforeUpdate:在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在这个生命周期中对更新之前的状态做一些处理。 6. updated:在数据更新之后调用,发生在虚拟DOM重新渲染和打补丁之后。可以在这个生命周期中操作更新后的DOM。 7. beforeUnmount:在实例销毁之前调用。在这一步,实例仍然完全可用。 8. unmounted:在实例销毁之后调用,此时组件已经从页面中移除。 以上是Vue3中常用的生命周期钩子函数,在setup函数中可以根据需要选择合适的钩子函数来处理组件的生命周期事件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [教程10 Vue3的生命周期与方法(Typescript)+ Setup语法糖详解 + setup中的生命周期钩子(代码截图版)](https://blog.csdn.net/boxuestudio/article/details/129909122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue3--setup&生命周期](https://blog.csdn.net/weixin_44748205/article/details/124868197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue3 + vite入门级资料 (基于vue2和前端基础)](https://download.csdn.net/download/BB_zhan/87274026)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值