兄弟组件传值

<!DOCTYPE html>

<html lang="zh-CN">

<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>Document</title>

    <link rel="stylesheet" href="css/category.css">

</head>

<body>

    <div id="app">

        <div class="header">

            分类

        </div>

        <div class="main">

            <!-- 菜单 -->

            <!-- <div class="left">

                <ul v-if="list.length">

                    <li v-for="(item,index) in list" @click="toggle(item.id)">{{item.title}}</li>

                </ul>

            </div> -->

            <menu1 @send-id="toggle"></menu1>

            <!-- 列表组件 -->

            <list :cur-id="curId"></list>

        </div>

        <div class="footer">

            footer

        </div>

    </div>

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

    <script src="./js/axios.js"></script>

    <script>

        //列表组件

        const List = {

            props: ["curId"],

            data(){

                return {

                    list: []

                }

            },

            template: `

                <div class="right">

                    <ul v-if="list.length">

                        <li v-for="(item,index) in list">{{item.proName}}</li>

                    </ul>

                </div>

            `,

            created(){

                this.getData()

            },

            methods:{

                getData(){

                    axios.get(`http://localhost:3000/goods/${this.curId}`)

                    .then(res=>{

                        // console.log(res.data);

                        this.list = res.data.items

                    })

                },

            },

            watch: {

                curId(){

                    this.getData()

                }

            }

        }

        const Menu1 = {

            template: `

            <div class="left">

                <ul v-if="list.length">

                    <li v-for="(item,index) in list" @click="toggle(item.id)">{{item.title}}</li>

                </ul>

            </div>

            `,

            data(){

                return {

                    list: []

                }

            },

            created(){

                this.getCategoryData()

            },

            methods: {

                // 获取分类数据

                getCategoryData(){

                    axios.get("http://localhost:3000/category")

                    .then(res=>{

                        this.list = res.data

                    })

                },

                //切换标签

                toggle(id){

                    this.$emit("send-id",id)

                }

            }

        }

        //父组件

        var vm = new Vue({

            el: '#app',

            data: {

                curId: 1

            },

            components: {

                List,

                Menu1

            },

            methods: {

                toggle(id){

                    this.curId = id

                }

            }

        });

    </script>

</body>

</html> 

`sssssssss`

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容