vue2的data()this指向和vue3区别

今天在这里我探讨了3种情况:

1.脚手架创建的vue2,写法也是vue2

2.脚手架创建的vue3,但写法是vue2

3.脚手架创建的vue3,写法也是vue3

1.脚手架创建的vue2,写法也是vue2

<script>
export default {
    data(){
        return {
            d:this
        }
        
    },
    mounted(){
        console.log("vue2this",this.d)
    }
}
</script>

 显而易见,vue2的data函数里的this是vue实例

2.脚手架创建的vue3,但写法是vue2

<script>
export default {
    data(){
        return {
            d:this
        }
        
    },
    mounted(){
        console.log("是vue3,但写法是vue2的this",this.d)
    }
}
</script>

这打印是Proxy

3.脚手架创建的vue3,写法也是vue3

<script lang="ts" setup>
import { onMounted } from 'vue'
onMounted(() => {
  console.log('vue3的this', this)
})
</script>

 

没错,vue3的this是undefined,那我们要如何得到vue3的实例呢,getCurrentInstance(),在这里给大家介绍下这个方法,官网说:它只能在setup和生命周期钩子函数里使用,但是但是!!!这个方法它只能在开发环境下,不能在生产环境下使用!!!也别想着在vue3中依赖this的写法!

<script lang="ts" setup>
import { getCurrentInstance } from 'vue'
  console.log('vue3的getCurrentInstance()方法', getCurrentInstance())
</script>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js,this关键字在Vue2和Vue3有不同的使用方式。 在Vue2,this指向Vue实例,可以在Vue组件的方法和生命周期函数使用this来访问Vue实例的属性和方法。例如,在Vue2的methods声明的方法,可以使用this来访问Vue实例的data属性。此外,在Vue2的生命周期函数,this指向当前的Vue实例。 而在Vue3,this被废弃了,不再指向Vue实例。相反,Vue3使用了composition API,其的setup函数是Vue3的主要入口点。在setup函数,无法直接使用this访问Vue实例。相反,您可以使用传递给setup函数的参数来访问Vue实例的属性和方法。 综上所述,Vue2可以使用this来访问Vue实例的属性和方法,而Vue3不再使用this来访问Vue实例,而是使用composition API的方式来操作数据和组件的逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3与vue2的区别(你不知道细节全在这)](https://blog.csdn.net/weixin_43932097/article/details/121512132)[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: 50%"] - *2* *3* [vue2和vue3的区别](https://blog.csdn.net/weixin_55903841/article/details/121520103)[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: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值