Vue之子组件向父组件传值

<!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>
</head>

<body>
    <div id="app">
        <div :style='{fontSize: fontSize + "px"}'>{{pmsg}}</div>
        <menu-item :parr='parr' @enlarge-text='handle2()' @enlarge-text='handle($event)' @shrink-text='handle1($event)'>
        </menu-item>
    </div>
</body>
<script src="../js/vue.js"></script>
<script>
    Vue.component('menu-item', {
        props: ['parr'],
        template: `
        <div>
          <ul>
            <li :key='index' v-for='(item,index) in parr'>{{item}}</li>
          </ul>
          <button @click='$emit("enlarge-text")'>扩大父组件中字体大小</button>
          <button @click='$emit("enlarge-text",15)'>扩大父组件中字体大小15</button>
          <button @click='$emit("shrink-text",15)'>缩小父组件中字体大小15</button>
        </div>
      `
    });
    var vm = new Vue({
        el: '#app',
        data: {
            pmsg: '父组件中内容',
            parr: ['apple', 'orange', 'banana'],
            fontSize: 10
        },
        methods: {
            handle: function (val) {
                // 扩大字体大小
                this.fontSize += val;

            },
            handle1: function (val) {
                this.fontSize -= val;
            },
            handle2: function () {
                this.fontSize += 5;
            }

        }
    });
</script>

</html>

posted @ 2021-09-16 22:36  丁帅帅dss  阅读(39)  评论(0)    收藏  举报