|  | 
 
| 
本帖最后由 不二如是 于 2018-9-27 14:51 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 
 上一讲我们搞定了组件模版的限制,本次来学习props的基本玩法。
 
 组件不仅仅是要把模板的内容进行复用,更重要的是使组件之间相互通信。
 
 所谓通信,可以这么理解:
 
 父组件的模板中包含子组件,父组件要正向地向子组件传递参数或数据。
 子组件接受到后,根据参数的不同来渲染不同的内容或相应的操作。
 这种通信过程,我们就要用props实现。
 
 在组件中,使用props来生命需要从父级接收的数据,props值可以是两种:
 
 
 我们先来介绍字符串数组的,对象的留在后续教程中。
 
 比如我们创建一个数组,接收一个来自父级的数据message,并将其在组件模板中渲染。
 
 创建div:
 
 复制代码<div id="myApp">
    <my-component message="来自父组件的问候"></my-component>
</div>
 创建组件和Vue实例:
 
 复制代码<script>
    Vue.component('my-component',{
        props:['message'],
        template:'<p>{{message}}</p>'
    })
    var app = new Vue({
        el:"#myApp"
    })
</script>
 
 上例中的message数据就是通过props从父级传递过来的。
 
 在组件的自定义标签上写该props的名称。
 
 props中声明的数据与组件data函数返回的数据主要区别就是:
 
 props来自父级,data中的数据是组建自己的。
 两种数据都可以在template模板、computed和methos中使用。
 
 如果要传递多个数据,在props的数组中添加相应的项即可。
 
 由于HTML不区分大小写,当使用DOM模板时,使用短横分隔符命名(例如:new-fishc)。
 
 组件中就使用驼峰命名(newFishc)。
 
 例如:
 
 复制代码<div id="myApp">
    <my-component hello-fishc="来自父组件的问候"></my-component>
</div>
 创建组件:
 
 复制代码  Vue.component('my-component',{
        props:['helloFishc'],
        template:'<p>{{helloFishc}}</p>'
    })
 日常开发中,我们很少传一个固定的值,父级数据往往是动态的。
 
 我们可以使用v-bind指令来动态绑定props的值。
 
 这样当父组件的数据变化时,也会传递给子组件,创建div:
 
 复制代码<div id="myApp">
    <input type="text" v-model="parentMessage">
    <my-component v-bind:message="parentMessage"></my-component>
</div>
 创建组件和Vue实例:
 
 复制代码<script>
    Vue.component('my-component',{
        props:['message'],
        template:'<p>{{message}}</p>'
    });
    var app = new Vue({
        el:"#myApp",
        data:{
            parentMessage:''
        }
    })
</script>
 
 使用v-model来绑定了父级的parentMessage数据。
 
 当通过输入框输入时,子组件接收到props的message也会实时更新。
 
 
 
 
 
 课后作业
 
 
 1、通信可以理解为父组件向其中的子组件传递参数或数据(T/F)
 
 2、通过使用什么方法可以实现父组件向子组件之间的通信。
 
 3、props的值可以是字符串数组?
 
 4、data函数return的数据和props的数据有何区别?
 
 5、需要动态接收父级的数据,如何操作?
 
 
 
 答案:
 
 
 
 
 
 如果有收获,别忘了评分
  : 
 
 
 
 这位鱼油,如果喜欢Vue,请订阅 专辑(传送门 )(不喜欢更要订阅   ) 
 
 | 
 |