前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue全局组件和局部组件及组件传值

Vue全局组件和局部组件及组件传值

作者头像
_kyle
发布2020-08-24 12:41:47
1.5K0
发布2020-08-24 12:41:47
举报
文章被收录于专栏:kyle的专栏kyle的专栏

全局组件注册

就是说它们在注册之后可以用在任何新创建的 Vue 根实例 (new Vue) 的模板中。下面是使用在root根示例下的first-component全局组件:

image.png

使用Vue.component定义的全局组件里面的data,和普通new Vue示例里面的data有所不同,Vue.component定义的时候data必须是一个function,而new Vue实例里边data必须是一对象

image.png

关于Vue.component里面组件命名以及标签使用的时候的一些问题:

html标签是不区分大小写的,但是如果注册组件的时候使用了驼峰命名或者帕斯卡命名,html标签里面必须以短横线分隔命名,如果注册组件的时候不是驼峰命名或者帕斯卡命名的话,html标签是不区分大小写的。如下:

image.png

局部组件注册

局部组件注册在vue实例中的components对象里面,可以注册多个局部组件,只有在实例中注册了该组件的根元素才能够使用这个组件,所有叫做局部组件。注意js中定义变量时不允许中线链接,所以这里定义使用帕斯卡或者驼峰,则根元素中使用组件时需要使用中线连接

image.png

关于上面的name属性传参时,当设级到动态的值需要使用v-bind:进行绑定。通过props获取值。Vue中的props自带属性类型检测,如下:

image.png

Vue中is属性渲染动态组件

下图示例通过点击国际新闻,国内新闻修改data中currentTab的值,然后html中使用is动态绑定值获取组件。(is属性还有一个作用就是,当组件嵌套不符合html规则的时候,通过将组件修改为标签,然后is属性绑定组件即可)

image.png

Vue中组件间传参问题

子组件像父组件传参:

需要在子组件上通过$.emit这个对象注册事件监听(第一个参数是事件名,第二个参数是需要传递的值),之后再父组件中通过v-on:绑定事件,若触发该事件则触发一个父组件的方法

image.png

若父组件像子组件传参:

则在父组件中以属性的形式传值,在子组件中以props获取,子组件里面可以通过插值表达式调用

image.png

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全局组件注册
  • 局部组件注册
  • Vue中is属性渲染动态组件
  • Vue中组件间传参问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档