Vue3 组合式 选项式 区别简单理解

其实没那么麻烦,简单来说组合式的好处就是让 “数据” 和 “逻辑” 可以放在一起,方便维护,提高代码清晰度,不过实在不喜欢组合式的,Vue3并没有废弃选项式,好了,看代码

DOM绑定基本没变 说下 script 里的一些基本内容 和 script标签的 区别

老旧的选项式

<script>
    export default {
        
    }
</script>

新的组合式

<script setup>

</script>

数据绑定

选项式 在data里 写需要双向绑定的值

<script>
    export default {
        data() {
            return {
                msg :'This is a piece of data',
                name:'zopy'
            }
        }
    }
</script>

组合式 需要绑定的值 用 ref 包起来就可以了

<script setup>

    import { ref } from 'vue'

    let msg  = ref('This is a piece of data')
    let name = ref('zopy')
    
</script>

方法

选项式 方法统一在 methods 对象里

<script>
    export default {
        data() {
            return {
                msg :'This is a piece of data',
                name:'zopy'
            }
        },
        methods: {
            // 方法被调用时 修改 name 的值
            setInfo(){
                this.name = 'A porn-loving kitten'
            }   
        }
    }
</script>

组合式 单独定义方法 修改绑定的值时 不再使用 this 关键词 而是使用 .value 获取值

<script setup>

    import { ref } from 'vue'

    let msg  = ref('This is a piece of data')
    let name = ref('zopy')
    
    // 方法被调用时 修改 name 的值
    let setInfo = () => {
        name.value = 'A porn-loving kitten'
    }

</script>

生命周期 这里使用 mounted 生命周期 做示例 其他同理 新的组合式生命周期名称 去官网查

选项式

<script>
    export default {
        data() {
            return {
                msg :'This is a piece of data',
                name:'zopy'
            }
        },
        methods: {
            // 方法被调用时 修改 name 的值
            setInfo(){
                this.name = 'A porn-loving kitten'
            }   
        },
        mounted() {
            // 页面初始化 调用 setInfo 方法
            this.setInfo()
        }
    }
</script>

组合式 需要引入 请注意

<script setup>

    import { ref, onMounted } from 'vue'

    let msg  = ref('This is a piece of data')
    let name = ref('zopy')
    
    // 方法被调用时 修改 name 的值
    let setInfo = () => {
        name.value = 'A porn-loving kitten'
    }

    onMounted(()=>{
        // 页面初始化 调用 setInfo 方法
        setInfo()
    })

</script>

路由 

选项式

<script>
    export default {
        data() {
            return {
                msg :'This is a piece of data',
                name:'zopy'
            }
        },
        methods: {
            // 方法被调用时 修改 name 的值
            setInfo(){
                this.name = 'A porn-loving kitten'
            },
            // 跳转页面
            goPage(){
                this.$router.push({ name:'index' })
            }
        },
        mounted() {
            // 页面初始化 调用 setInfo 方法
            this.setInfo()
        }
    }
</script>

组合式 需要引入 并挂载


<script setup>

    import { ref, onMounted } from 'vue'
    import { useRouter } from 'vue-router'
    
    let router = useRouter()       // 挂载路由实例
    let msg    = ref('This is a piece of data')
    let name   = ref('zopy')
    
    // 方法被调用时 修改 name 的值
    let setInfo = () => {
        name.value = 'A porn-loving kitten'
    }

    // 跳转页面
    let goPage = () => {
        router.push({ name: 'index' })
    }

    onMounted(()=>{
        // 页面初始化 调用 setInfo 方法
        setInfo()
    })

</script>

别的就先暂时不说了 能理解就行 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中,组合式API引入了一种新的方来组织和管理组件的生命周期函数。相比于Vue 2中的选项API,组合式API更加灵活和易于理解。 在Vue 3的组合式API中,我们可以使用`setup`函数来定义组件,并在该函数中使用不同的钩子函数来实现组件的生命周期逻辑。下面是一些常用的组合式生命周期函数: 1. `onBeforeMount`: 在组件挂载之前调用,类似于Vue 2中的`beforeMount`钩子。 2. `onMounted`: 在组件挂载后调用,类似于Vue 2中的`mounted`钩子。 3. `onBeforeUpdate`: 在组件更新之前调用,类似于Vue 2中的`beforeUpdate`钩子。 4. `onUpdated`: 在组件更新后调用,类似于Vue 2中的`updated`钩子。 5. `onBeforeUnmount`: 在组件卸载之前调用,类似于Vue 2中的`beforeUnmount`钩子。 6. `onUnmounted`: 在组件卸载后调用,类似于Vue 2中的`unmounted`钩子。 除了上述钩子函数外,还有一些其他的组合式生命周期函数可供使用,比如`onErrorCaptured`、`onRenderTracked`、`onRenderTriggered`等。这些钩子函数可以在`setup`函数中通过返回一个对象来定义。 需要注意的是,组合式API中的生命周期函数是通过函数的形来定义的,而不再是Vue 2中使用`this`来访问组件实例。此外,由于使用了`setup`函数,我们可以在这里进行一些初始化工作,并且可以使用`ref`、`reactive`等响应API。 总的来说,Vue 3的组合式API为我们提供了更加灵活和可组合的方来管理组件的生命周期逻辑,使得代码更加清晰和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值