老师这种写法this.$emit的第二个参数传给谁了,update:modelValue是点击后就通过第二个参数改变值吗

来源:1-8 组件间双向绑定高级内容(选学)

母鸡阿

2021-06-23 12:41:16

<!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,

                num:2

            }

        },

        template: `<div><counter v-model:count_="count" v-model:num_="num"  />`,

    });


    app.component('counter',{

        props:["count_","num_"],

        template:`

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

        `,

        methods:{

            countAdd(){

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

            }

        }

    })

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

</script>


</html>


写回答

1回答

好帮手慕慕子

2021-06-23

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

1、第二个参数传递给"update:count_"这个方法了,可以在组件上绑定这个事件update:count_,事件函数名为test,如下:

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

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

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



2、是的,vue底层代码进行处理,属于一种固定的用法,目前阶段会用即可。


祝学习愉快~

0

0 学习 · 15276 问题

查看课程