vue-组件

全局组件

   Vue.component("detail", {
            template: `<h1>详情页面</h1>`
        })

局部组件

 var Child = {
            template: '<h1>自定义组件!</h1>'
        }

父传子&子改父

 <div id="app">
        <!-- 组件名使用大写 要使用-分隔 -->
        <!-- 可以缩写使用 /关闭 -->
        <!-- 多个组件写在一起不能简写 -->
        <!-- :msg="str"父传子 加:传的是变量,不加传的是字符串 -->
        <!-- <list-page :msg="str"></list-page> -->
        <list-page :msg="msg" @magfn="magfn"></list-page>
        <detail></detail>
        <jpage></jpage>
    </div>
    <script src="./vue.min.js"></script>
    <script>
        // 全局组件 注意顺序,先写全局组件 在new实例
        Vue.component("listPage", {
            props: ["msg"],
            template: `<div>
            <h1>列表页面</h1>
            <h2 @click="changemsg">{{msg}}</h2>
            </div>`,
            methods: {
                changemsg() {
                    console.log(this.msg);
                    // 需要使用自定义事件的方法来实现子改父
                    this.$emit("magfn", "诸子百家")
                }
            }
        }

        )
        Vue.component("detail", {
            template: `<h1>详情页面</h1>`
        })
        var Child = {
            template: '<h1>自定义组件!</h1>'
        }
        new Vue({
            el: "#app",
            data: {
                // str: "秦时明月"
                msg: "秦时明月"
            },
            methods: {
                magfn(s) {
                    this.msg = s
                }
            },
            // 局部组件
            components: {
                "jpage": {
                    template: '<div><h1>子组件</h1></div>'
                }


            }
        })
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值