猿问

在vue中如何对父子组件拆分成非父子组件并实现通信

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title></title>

    <script src="js/vue.min.js"></script>

</head>

<body>

    <div id="itany">

        <ul class="form-ul">

            <li class="form-item">

                <h4 class="form-title">邮件主题</h4>

                <ele-input v-on:name="handleList"></ele-input>

                <!-- <my-input :value="item" @input="val => {item = val}"></my-input>-->

                <i class="icon pen"></i>

            </li>

        </ul>

        <ul class="form-ul">

            <li class="form-item" v-for="(v,k) in Arr" :key="k">

                {{v}}

            </li>

        </ul>

    </div>


<script>

    Vue.component(

        'eleInput',{

                template: '<input type="text"  @input="pushArr" v-model="name" >\

                ',

                data: function(){

                        return{

                            name:""

                        }

                    },

                methods:{

                    pushArr: function () {

                        this.$emit('name',{item:this.name});

                    }

                }


            }

    )


    var vm=new Vue({

        el:"#itany",

        data:function(){

            return{

                Arr:[],

                Arrpost:['大华','小华', 'alex', 'mark']

            };

        },

        methods:{

            handleList: function (payload) {

                var temp=[];

                this.Arrpost.forEach(

                        function(val){

                            if(val.indexOf(payload.item)!=-1&&(payload.item!="")){

                                temp.push(val);

                            }

                        }

                );

                this.Arr=temp;

            }

        }

    })



</script>

</body>

</html>

请把上面的代码中 <li class="form-item" v-for="(v,k) in Arr" :key="k">{{v}}</li>


拆成另外个组件,并实现和ele-input组件的通信,参考官方文档https://cn.vuejs.org/v2/guide/components.html#非父子组件通信


HUX布斯
浏览 382回答 2
2回答

12345678_0001

先把 li 抽成组件 这个应该不难第二部 组件通信&nbsp;1 li组件中$emit一个事件2 父组件 on接受事件 触发父组件中的方法3 父组件触发的方法中改变传给ele-input组件的数据这个是我的思路,也不知道可不可行
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答