vue计算属性与监视


1.通过计算属性,改变内容

fullName不再放在data中声明,而是作为一个方法,在computed中声明,此方法就是一个回调函数,将框一的内容和框二的内容进行组合,框一内容改变或者框二内容改变都会触发这个回调函数

2.通过监视属性,改变内容

注意监视的两种写法

监视属性其实就是通过监视某个属性的变化,从而来触发某个函数,比如例子中我们想通过监视框一或者框二内容的变化,来触发我们的回调函数以此达到框一框二变化,我们的fullName2内容也会同步变化

3.计算属性的另一种写法

通过getter/setter实现对属性数据的显示和监视

首先通过get方法在fullName3中显示出框一加框二的内容从而达成firstName和lastName内容改变,fullName3内容也会跟着改变

return this.firstName + '-' + this.lastName

然后通过set方法将监视到的改变过后的框一内容和框二内容的重新赋值给firstName和lastName,从而达成,fullName3内容改变,firstName和lastName内容也会跟着改变,

<!DOCTYPE html>

<html lang="en">

    <meta charset="UTF-8">

    <title>Title

    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js">

<div id="app">

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

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

    姓名1(单向:通过计算属性改变值)<input type="text" v-model="fullName1">

    姓名2(单向:通过监听改变值)<input type="text" v-model="fullName2">

    姓名3(双向:通过计算属性改变值)<input type="text" v-model="fullName3">

    var vm =new Vue({

el:"#app",

        data: {

firstName:'框1的内容',

            lastName:'框2的内容',

            fullName2:''

        },

        computed: {

fullName1() {

return this.firstName +'-' +this.lastName

            },//通过计算属性改变fullName的值,fullName不再放到data中取声明,而是作为一个方法,在computed中声明,方法的内容就是返回一个值

            fullName3: {

get() {

return this.firstName +'-' +this.lastName

                },

                set(value){

const names = value.split('-')

this.firstName = names[0]

this.lastName = names[1]

}

}

},

        watch: {

firstName(value) {

this.fullName2 = value +'-' +this.lastName

            },

        }

})

vm.$watch('lastName', function (value) {

this.fullName2 =this.firstName +'-' + value

})

</html>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容