vuex 入门组件间传值

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>demo4</title>
    <script src="https://cdn.bootcss.com/vue/2.4.1/vue.js"></script>
    <script src="https://cdn.bootcss.com/vuex/2.3.1/vuex.js"></script>
</head>

<body>
<div id="app">
    <add-bar></add-bar>
    <list-bar></list-bar>
</div>

<script>
    let store = new Vuex.Store({
        state:{
            list:[]
        },
        mutations:{
            //参数1是state,参数2是组件传出来的
            addItem:function(state,responses){
                console.log(responses);
                state.list.push(responses);
            }
        }
    });

    let addBar = {
        template:`
        <div>
            <div>
                <label for="">账号:</label>
                <input type="text" v-model="person.account">
            </div>
            <div>
                <label for="">密码:</label>
                <input type="text" v-model="person.password">
            </div>
            <div>
                <input type="button" value="ok" @click="addItem">
            </div>
        </div>`,
        data(){
            return{
                person:{
                    account:'',
                    password:''
                }
            }
        },
        methods:{
            addItem(){
                this.$store.commit('addItem',{account:this.person.account,password:this.person.password});
                this.person.account = this.person.password = '';
            }
        }
    };

    let listBar = {
        template:`
        <div>
            <div v-for="item in items">
                {{item.account}} ---- {{item.password}}
            </div>
        </div>`,
        computed:{
            items(){
                return this.$store.state.list;
            }
        }
    };

    new Vue({
        el:"#app",
        store,
        components:{
            'add-bar':addBar,
            'list-bar':listBar
        }
    })
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_40285497/article/details/79913640
今日推荐