美文网首页
Vue学习的第十天

Vue学习的第十天

作者: Easy_Dream | 来源:发表于2018-01-23 19:56 被阅读0次

    组件


    #全局注册

    可以通过以下方式创建一个 Vue 实例

    new Vue({

         el:"#some-element",

         //选项

    })

    要注册一个全局组件可以使用Vue.component(tagname, options), 组件在注册之后,便可以作为自定义元素  在一个实例的模板中使用。注意确保在初始化根实例之前注册组件

    Vue.component("my-component", {

         //选项

    })

    #局部注册

    不必把每个组件都注册到全局。你可以通过某个 Vue 实例/组件的实例选项 components 注册仅在其作用域中可用的组件:

    var Child = {

         template:"<div>A custom component</div>"

    }

    new Vue({

         component:{

                //<my-component> 将只在父组件模板中可用

               "my-component":Child

         }

    })

    #data 必须是函数

    构造 Vue 实例时传入的各种选项大多数都可以在组件里使用。只有一个例外:data 必须是函数。

    <div id="example-2">

         <my-component></my-component>

    </div>

    Vue.component("my-component",{

         template:"<button v-on:click='counter += 1'>{{counter}}</button>",

        data:function(){

             return {counter:0}

        }

    })

    new Vue({

         el:"#example-2"

    })

    #组件组合

    组件设计初衷就是要配合使用的,最常见的就是形成父子组件的关系:组件 A 在它的模板中使用了组件 B。它们之间必然需要相互通信:父组件可能要给子组件下发数据,子组件则可能要将它内部发生的事情告知父组件。然而,通过一个良好定义的接口来尽可能将父子组件解耦也是很重要的。这保证了每个组件的代码可以在相对隔离的环境中书写和理解,从而提高了其可维护性和复用性。

    在 Vue 中,父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息。

    #使用Prop传递数据

    组件实例的作用域是孤立的.这意味着不能在子组件的模板内直接引用父组件的数据.父组件的数据需要通过prop才能下发到子组件中.

    子组件要显示地用props选项声明它预期的数据

    Vue.co,ponent('child', {

         props:['message'],

         template:'<span>{{message}}</span>'

    })

    然后我们可以这样向它传入一个普通的字符串

    <child message="hello"></child>

    #camelCase vs kebab-case

    HTML 特性是不区分大小写的。所以,当使用的不是字符串模板时,camelCase (驼峰式命名) 的 prop 需要转换为相对应的 kebab-case (短横线分隔式命名)

    Vue.component('child',{

         props:["myMessage"],

         template:"<span>{{myMessage}}</span>"

    })

    <child my-message="hello"></child>

    如果使用字符串模板,则没有这些限制。

    #动态Prop

    与绑定到HTML特性相类似,可以用v-bind来动态的将prop绑定到父组件的数据.每当父组件的数据变化时,该变化也会传导给子组件

    <div>

    <input

    相关文章

      网友评论

          本文标题:Vue学习的第十天

          本文链接:https://www.haomeiwen.com/subject/ijmraxtx.html