前端Vue(六)——Vue组件的作用、全局组件与局部组件、Props的静态数据与动态数据的传递、单向数据流

本文详细介绍了Vue.js中组件的作用、注册(全局与局部)、使用方式,强调了组件模板需包含唯一根元素。还探讨了Props在组件间静态和动态数据传递的应用,强调了单向数据流原则,并给出了避免直接修改父组件数据的解决方案。通过实例展示了如何通过props传递数据,以及在组件内部定义和使用数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端Vue(六)

Vue组件

一、组件作用

作用:用来减少Vue实例对象中代码量,日后在使用Vue开发过程中,可以根据不同业务将页面划分多个不同的组件,然后由多个组件去完成去完成整个页面的布局,便于使用Vue进行开发页面管理,方便开发人员维护。

二、组件注册

1、全局组件注册

通过component对象来注册:
参数一:组件名称。
参数二:组件配置对象 template:用来书写组件的html代码(在template中必须存在一个容器,必须有且仅有一个根元素)。

全局组件注册给Vue实例,日后可以在任意Vue实例的范围内使用该组件。

举个例子:
在这里插入图片描述

可以看到,template里面是有个div容器包裹的,如果只有template,没有div这个容器,会出错。

2、全局组件使用

在这里插入图片描述
直接通过组件的名字来使用。

使用时需要在Vue作用范围内根据组件名使用全局组件。

注意:这一块有个命名的地方需要注意,有时候使用驼峰命名,比如组件注册的时候使用:userLogin,但是在使用组件的时候,不能 userLogin,这样会报错,只能 user-login 这样使用。
在这里插入图片描述

3、局部组件注册

说明:通过将组件注册给对应Vue实例中一个components属性来完成组件注册,这种方式不会对Vue实例造成累加。

接着来看下怎么局部组件注册:
在这里插入图片描述
但这么写不太好,如果日后代码量越来越多,不好。

所以使用下面这种方式:
在这里插入图片描述

4、第二种开发方式

还有另外一种使用组件的方式,但都差不多:
在这里插入图片描述

主要是通过 id选择器 来使用。

三、Props的使用

作用:props用来给组件传递相应静态数据或者是动态数据的。

1、静态数据

组件外与组件内怎么传递与接收数据呢?
通过 props 来传递。
在这里插入图片描述
总结:
1、使用组件时可以在组件上定义多个属性以及对应数据。
2、在组件内部可以使用props数组声明多个定义在组件上的属性名,日后可以在组件中通过 {{ 属性名 }} 方式获取组件中属性值。

2、动态数据

上面都是通过写死的方式来传递静态数据,现在来通过声明动态数据传递给组件内部。

让 v-bind : name ( : name)的方式绑定属性,通过这种方式来动态的传递数据。

在这里插入图片描述
日后可以通过Vue实例中的 username 发生变化,从而动态的发生变化。

来看下传递顺序:
在这里插入图片描述
所以这里只要Vue实例中的 data 里面的数据发生变化,就可以动态的使其数据发生变化。

3、单向数据流

所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。

现在先注册一个组件:
在这里插入图片描述
在使用这个组件的时候,我们不希望这个数据传过来,希望组件内部自己就有数据,组件内部它自己可以定义数据吗,当然是可以的:
在这里插入图片描述
在组件内部可以自己定义一个 data,然后里面通过 return 的方式来定义自己的数据。

那这跟单项数据流有什么关系呢?
如果我们在外部传入数据,内部又定义自己的数据:
在这里插入图片描述
此时就会报错!
子元素想要修改传入的父元素数据,就会报错!

在这里插入图片描述

来看下官网说明:
在这里插入图片描述

但是可以取不同的名字来分别使用外部数据与内部数据:
在这里插入图片描述
这里可以看到:
外部数据通过 props 来传递,内部数据自己调用 return 方法来使用!

但是如果我们就是想要保留外部传入的数据怎么办呢?
在这里插入图片描述

可以在 return 方法里面,通过将外部数据赋予内部数据(上述例子的 name : this.username),就可以保留。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值