zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    jQuery Ajax 实例 全解析
    用Javascript评估用户输入密码的强度
    常用网址
    常用的107条Javascript
    根据键盘操作表格
    HTML5吧
    css3动画简介以及动画库animate.css的使用
    jquery插件下载地址
    CEO、COO、CFO、CTO
    springboot与shiro配置
  • 原文地址:https://www.cnblogs.com/zmlAliIqsgu/p/12650443.html
Copyright © 2011-2022 走看看