鱼C论坛

 找回密码
 立即注册
查看: 1547|回复: 2

[庖丁解牛] 026 V props的基本玩法

[复制链接]
发表于 2018-9-27 10:38:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2018-9-27 14:51 编辑


                               
登录/注册后可看大图


上一讲我们搞定了组件模版的限制,本次来学习props的基本玩法。

组件不仅仅是要把模板的内容进行复用,更重要的是使组件之间相互通信

所谓通信,可以这么理解:
父组件的模板中包含子组件,父组件要正向地向子组件传递参数或数据。

子组件接受到后,根据参数的不同来渲染不同的内容或相应的操作。


这种通信过程,我们就要用props实现。

在组件中,使用props来生命需要从父级接收的数据,props值可以是两种:
1、字符串数组
2、对象


我们先来介绍字符串数组的,对象的留在后续教程中。

比如我们创建一个数组,接收一个来自父级的数据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>
Snip20180927_60.png


上例中的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>
Sep-27-2018 14-48-46.gif


使用v-model来绑定了父级的parentMessage数据。

当通过输入框输入时,子组件接收到props的message也会实时更新。





课后作业


1、通信可以理解为父组件向其中的子组件传递参数或数据(T/F)

2、通过使用什么方法可以实现父组件向子组件之间的通信。

3、props的值可以是字符串数组?

4、data函数return的数据和props的数据有何区别?

5、需要动态接收父级的数据,如何操作?



答案:
游客,如果您要查看本帖隐藏内容请回复





如果有收获,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢Vue,请订阅 专辑传送门)(不喜欢更要订阅



                               
登录/注册后可看大图

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 11:23:49 | 显示全部楼层
1.T
2.通过props属性
3.T
4.前者为组件的自有数据,props为父组件传向子组件的数据
5.通过v-bind绑定props的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-1 21:23:08 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表