Vue之高级组件

Posted zmlaliiqsgu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue之高级组件相关的知识,希望对你有一定的参考价值。

v-model在局部组件的使用,如何使用局部组件实现数据的共享

需要自定义两个组件
<compa :user="username"></compa>

<script>
       //局部组件
       const compb={   //定义一个b组件
           props:[‘user‘],
            template:‘<h2>hello ???-{{user}}</h2>‘
        }
        const compa={ //定义一个a组件
            props:[‘user‘],
            template:`
            <div>
                <h1>
                    hello
                </h1>
                <compb :user="user"></compb> //把b组件嵌套在a组件里,这里必须要加一个外层的div进行包裹
            </div>
            `,
            components:{
                compb
            }
        }
        var vm = new Vue({
            el: "#app",
            data:{
                username:‘zhangsan‘
            },
            components:{
                compa,
            }         
        })
    </script>

v-model在局部组件的使用

<custom-checkbox v-model="checkvalue"></custom-checkbox>

<script>
        Vue.component(‘custom-checkbox‘,{
            model:{
                prop:"checked",//默认值为:value
                event:"change",//默认值为:input
            },
            props:{
                checked:Boolean,//默认值为:value:String
            },
            template:`
            <input type="checkbox" :checked="checked" @change="$emit(‘change‘,$event.target.checked)"/>
            `
        })
        var vm =new Vue({
            el:"#app",
            data:{
                checkvalue:true
            }
        })
    </script>

.sync修饰符:可以对数据进行修改

<custom-input :username.sync="username"></custom-input>

<script>
        Vue.component(‘custom-input‘,{            
            template:`
            <input type="text" @change="$emit(‘update:username‘,$event.target.value)"/>
            `    
        })
        var vm =new Vue({
            el:"#app",
            data:{
                username:‘‘
            },
        })
    </script>

以上是关于Vue之高级组件的主要内容,如果未能解决你的问题,请参考以下文章

Vue之高级组件

Vue第四天学习笔记之组件化高级

vue2.0学习笔记之组件

Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrackonTriggeronInvalidate副作用的刷新时机`watch` pre)(代码片段

vue中的组件

vscode代码片段生成vue模板