VUE 3 的计算属性 computed

VUE 3 的 computed 函数使用示例

computed函数

  • 与Vue2.x中computed配置功能一致

  • 写法

    import {computed} from 'vue'
    
    setup(){
        ...
    	//计算属性——简写
        let fullName = computed(()=>{
            return person.firstName + '-' + person.lastName
        })
        //计算属性——完整
        let fullName = computed({
            get(){
                return person.firstName + '-' + person.lastName
            },
            set(value){
                const nameArr = value.split('-')
                person.firstName = nameArr[0]
                person.lastName = nameArr[1]
            }
        })
    }

main.js

//引入的不再是Vue构造函数了,引入的是一个名为createApp的工厂函数

import { createApp } from 'vue'

import App from './App.vue'

//创建应用实例对象——app(类似于之前Vue2中的vm,但app比vm更“轻”)

const app = createApp(App)

//挂载

app.mount('#app')

App.vue

<template>

    <Demo/>

</template>

<script>

    import Demo from './components/Demo'

    export default {

        name: 'App',

        components:{Demo},

    }

</script>


components\Demo.vue

<template>

    <h1>一个人的信息</h1>

    姓:<input type="text" v-model="person.firstName">

    <br>

    名:<input type="text" v-model="person.lastName">

    <br>

    <span>全名:{{person.fullName}}</span>

    <br>

    全名:<input type="text" v-model="person.fullName">

</template>

<script>

    import {reactive,computed} from 'vue'

    export default {

        name: 'Demo',

        setup(){

            //数据

            let person = reactive({

                firstName:'张',

                lastName:'三'

            })

            //计算属性——简写(没有考虑计算属性被修改的情况)

            /* person.fullName = computed(()=>{

                return person.firstName + '-' + person.lastName

            }) */

            //计算属性——完整写法(考虑读和写)

            person.fullName = computed({

                get(){

                    return person.firstName + '-' + person.lastName

                },

                set(value){

                    const nameArr = value.split('-')

                    person.firstName = nameArr[0]

                    person.lastName = nameArr[1]

                }

            })

            //返回一个对象(常用)

            return {

                person

            }

        }

    }

</script>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA代码搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值