vue2和vue3不同写法及区别

一、vue2和vue3写法及区别:

       --写法却别:vue写法共有组合式和选项式两种写法,vue2主要使用选项式写法,vue3主要使用组合式写法;vue2只支持选项式写法 ,vue3同时支持选项式和组合式写法。

       --vue2和vue3双向数据绑定不同

       --vue2和vue3生命周期不同

       --vue2和vue3定义数据方法不同

       --vue2和vue3插槽不同

       --vue2不支持多根节点,vue3支持多根节点

       --响应式原理不同,vue2原理基础依靠 Object.defineProperty;vue3原理基础依靠Proxy

       --diff算法不同,vue3更优化

二、写法不同,写法详解。

  选项式API写法(vue2和vue3都支持)

<template>
<!-- 此标签内主要写html -->
<div class="box" @click="getbtn"></div>
</template>


<script>            //script标签写vue语法
export default {    //此标签意为导出vue模块
     data(){        //data为vue常用字段,主要用来定义数据和变量,用this来调用定义的数据和变量
        return {
            btn: 1,  // 定义一个数据 ,通过上方设置点击事件,在methods中用this.btn调用
        }
     },
     created(){       //生命周期,组件创建时调用方法

     },
     methods:{        //mthods主要来写方法
        getbtn(){
            console.log(this.btn); // 1
        }
     },

     watch:{          //监听时使用(多个影响一个)

     }
}
</script>



<style>
/* 此标签内主要写css样式 */
.box{
    width: 10px;
}
</style>

组合式API写法(两种写法,只有vue3支持)

 第一种组合式写法

<template>
<!-- 写html -->
<div @click="shdg"> {{ data }}</div>

</template>


<script >
import {ref,reactive}  from 'vue'   
 export default {
    setup(){       //组合式关键setup
              
    let data=ref('蔡徐坤')       //定义数据和变量,js中调用需value,模板中不需
    let das=reactive('鸡坤')   //只能定义对象类型数据,js和模板中调用都不需要调用value

    let shdg=()=>{        //点击事件
        console.log(data.value);   //蔡徐坤
        console.log(das);          //鸡坤

    }

    return{             //重要,定义的变量和方法都要return 出去
        data,
        das,
        shdg
    }
    }
 }
</script>


<style>
/* 写css样式 */
</style>

第二种:组合式写法(常用:简洁,方便)

<template>
    <!-- 写html -->
    <div @click="shdg"> {{ data }}</div>
</template>

<script setup>            //组合式关键setup
import { ref, reactive } from 'vue'

let data = ref('蔡徐坤')       //定义数据和变量,js中调用需value,模板中不需
let das = reactive('鸡坤')    //只能定义对象类型数据,js和模板中调用都不需要调用value
let shdg = () => {            //点击事件
    console.log(data.value);   //蔡徐坤
    console.log(das);          //鸡坤
}
</script>

<style>
/* 写css样式 */
</style>

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Vue 3相对于Vue 2有一些写法上的区别。以下是一些主要的区别: 1. Composition API:Vue 3引入了Composition API,这是一种新的方式来组织和复用Vue组件的逻辑。它允许开发者使用函数式的方式组织代码,而不是依赖于Options API。这使得逻辑可以更好地组织和重用,并且使得代码更易于理解和维护。 2. 更好的TypeScript支持:Vue 3对TypeScript的支持得到了改进,使用TypeScript编写Vue应用更加方便。Vue 3中引入了一些新的类型定义,使得类型检查更加准确和强大。 3. 更快的渲染性能:Vue 3在内部进行了一些优化,使得渲染性能更高。Vue 3使用了Proxy代理对象来进行响应式更新,这比Vue 2中的Object.defineProperty更高效。此外,Vue 3还引入了静态模板编译优化,可以在构建时进行一些静态分析和优化,从而提高渲染性能。 4. 更小的包体积:Vue 3对包体积进行了优化,尤其是对Tree-shaking支持的改进。这意味着在使用Vue 3时,你只会打包所使用的功能,而不会打包整个框架。 5. 更好的逻辑复用:Composition API的引入使得逻辑复用更加灵活和强大。你可以使用自定义的Hook来组织和复用逻辑,这样可以更好地解耦和复用代码。 需要注意的是,虽然Vue 3在写法上有一些变化,但它仍然保持了与Vue 2相似的核心概念和理念,因此Vue 2的开发者可以相对轻松地迁移到Vue 3。另外,Vue 3也提供了一些工具来帮助开发者进行迁移,例如vue-migration-helper插件可以帮助检测代码中的迁移问题。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值