美文网首页
vue子组件向父组件传值

vue子组件向父组件传值

作者: 王玉伟的伟 | 来源:发表于2019-11-24 12:16 被阅读0次
    • 子组件用$emit()触发事件
    • $emit() 第一个参数为 自定义的事件名称 第二个参数为需要传递的数据
    • 父组件用v-on 监听子组件的事件
    
     <div id="app">
        <div :style='{fontSize: fontSize + "px"}'>{{pmsg}}</div>
         <!-- 2 父组件用v-on 监听子组件的事件
            这里 enlarge-text  是从 $emit 中的第一个参数对应   handle 为对应的事件处理函数 
        --> 
        <menu-item :parr='parr' @enlarge-text='handle($event)'></menu-item>
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        /*
          子组件向父组件传值-携带参数
        */
        
        Vue.component('menu-item', {
          props: ['parr'],
          template: `
            <div>
              <ul>
                <li :key='index' v-for='(item,index) in parr'>{{item}}</li>
              </ul>
                ###  1、子组件用$emit()触发事件
                ### 第一个参数为 自定义的事件名称   第二个参数为需要传递的数据  
              <button @click='$emit("enlarge-text", 5)'>扩大父组件中字体大小</button>
              <button @click='$emit("enlarge-text", 10)'>扩大父组件中字体大小</button>
            </div>
          `
        });
        var vm = new Vue({
          el: '#app',
          data: {
            pmsg: '父组件中内容',
            parr: ['apple','orange','banana'],
            fontSize: 10
          },
          methods: {
            handle: function(val){
              // 扩大字体大小
              this.fontSize += val;
            }
          }
        });
      </script>
    
    

    相关文章

      网友评论

          本文标题:vue子组件向父组件传值

          本文链接:https://www.haomeiwen.com/subject/ztrkwctx.html