老师,this.$emit('update:count_',this.count_+2)这句话啥意思,为啥第二个参数这么写count就能加2

来源:1-7 父子组件间如何通过事件进行通信(2)

母鸡阿

2021-06-25 00:35:56

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>组件双向绑定高级内容</title>

    <script src="https://unpkg.com/vue@next"></script>

</head>


<body>

    <div id="root"></div>

</body>

<script>


    const app = Vue.createApp({

        data(){

            return{

                count:1,

                str:'aaa'

            }

        },

        //v-model:    :是重命名,原本子组件接收参数是用modelValue,重命名后用重命名的名字接收

        template: `<div><counter v-model:count_="count" v-model:str_.uppercase="str"  /></div>`,

    });


    app.component('counter',{

        props:{

            'count_' : Number,

            'str_': String,

            //str_的修饰符

            'str_Modifiers' : {

                // default: () => ({})

            }

        },

        template:`

            <div @click="countAdd">{{count_}}</div>

            <div @click="str">{{str_}}</div>

        `,

        methods:{

            countAdd(){

                this.$emit('update:count_',this.count_+2)

            },

            str(){

                let newStr = this.str_ + 'b';

                newStr = newStr.toUpperCase();

                if(this.str_Modifiers.uppercase){

                    this.$emit('update:str_',newStr);

                }

            }

        }

    })

    const vm = app.mount('#root');

</script>


</html>


写回答

1回答

好帮手慕慕子

2021-06-25

同学你好,对于你的问题解答如下:

1、这句代码的意思是触发update:count_事件,然后将this.count_+2作为参数传递给这个事件,可以在组件上绑定这个事件update:count_,对应事件函数名为test,如下:

http://img.mukewang.com/climg/60d53f0409e5833710530328.jpg

每次点击组件时,都会触发update:count_,输出传入的值,如下:

http://img.mukewang.com/climg/60d53f1c09919cc405180551.jpg

2、因为每次执行this.$emit('update:count_', this.count_ + 2)这句代码时,会将count_值加2, 而vue语法中规定的,组件上书写的v-model:count_="count" 这句代码,将count_和count进行了双向绑定,所以当count_的值改变时,count也会跟着改变。

老师在视频最后也提到过,这块理解起来可能会比较难,同学们如果可以理解的话,就尝试去理解下,如果理解不了,也不用担心,实际开发中,这种方式很少使用到,了解一下就可以了。

祝学习愉快~

0

0 学习 · 15276 问题

查看课程