摘要:浅谈中的组件一初识组件组件是最强大的功能之一。组件可以扩展元素,封装可重用的代码。例子我是组件我要把中的数据传给我是组件中央事件总线我是用来接收从传过来的数据我是中的数据我是根组件的数据
浅谈 vue 中的组件 一 、初识组件
组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。
1、定义组件Vue自定义组件分为两种:全局注册和局部注册,全局组件可以在任何地方引用,局部组件只能在当前Vue实例使用。
全局注册 放在通过new创建的Vue实例当中
Vue.component("my-component", { template: "我是被全局注册的组件
" }) /* Vue.component(组件名称[字符串], 组件对象) */ new Vue({ el: "#app", template: "" })
局部注册
const child = { template: "二、自定义事件 自定义事件原理我是局部注册的组件
" } /* 通过components选项属性进行局部注册: components: { 组件名称[字符串]: 组件对象 } */ new Vue({ el: "#app", template: "", components: { "my-component": child } })
通过$emit(event)触发一个自定义事件
然后通过$on(event,callback) 去执行对应的callback(回调函数)
(两个event是字符串,且必须名称相同)
但$on不能在父组件中监听子组件抛出的事件,所以我们要做到这一点,可以在父组件的模板中使用到子组件的时候,直接用v-on绑定 (和$on作用效果一致)
三、组件通信组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一般来说,组件可以有以下几种关系:
如上图所示,A 和 B、B 和 C、B 和 D 都是父子关系,C 和 D 是兄弟关系,A 和 C 是隔代关系(可能隔多代)。
针对不同的使用场景,如何选择行之有效的通信方式?这是我们所要探讨的主题。本文总结了 vue 组件间通信的几种方式,如 props、$emit/$on、vuex、$parent / $children、$attrs/$listeners和 provide/inject等
1、方法一props/$emit父组件 A 通过 props 的方式向子组件 B 传递,B to A 通过在 B 组件中 $emit, A 组件中 v-on 的方式实现。
父组件向子组件传值
//App.vue父组件//前者自定义名称便于子组件调用,后者要传递数据名
子组件向父组件传值
子组件通过 events 给父组件发送消息,实际上就是子组件把自己的数据发送到父组件。
2、方法二 $emit/$on// 父组件 {{title}}
//绑定一个点击事件//与子组件titleChanged自定义事件保持一致 // updateTitle($event)接受传递过来的文字 {{title}}
这种方法通过一个空的 Vue 实例作为中央事件总线(事件中心),用它来触发事件和监听事件,巧妙而轻量地实现了任何组件间的通信,包括父子、兄弟、跨级。当我们的项目比较大时,可以选择更好的状态管理解决方案 vuex。
例子
我是about组件我是more组件
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/104273.html
摘要:接触过的童鞋都知道,组件的模板一般都是在选项内定义的,如我是闰土大叔这个用法都是老生常谈了,今天来聊聊的内联模板。作者闰土大叔链接来源著作权归作者所有。 showImg(https://segmentfault.com/img/bV1Og9?w=554&h=294); 接触过vue的童鞋都知道,组件的模板一般都是在template选项内定义的,如: 1 Vue.component(ch...
摘要:而的状态测试更类似于单元测试,和组件的依赖较低,组件只会存在调用模块的方法或者读取状态,在组件频繁的改动中,而的改动相对会较小,所以状态测试便会存在一定的价值。 父子组件通信 showImg(https://segmentfault.com/img/remote/1460000010761687); Vuet提供了模块化的状态管理,通过对一个组件的注入,再向其子组件进行分发,使得我们可...
摘要:是一款基于的服务端渲染框架,跟的异曲同工。该配置项用于定义应用客户端和服务端的环境变量。 Vue因其简单易懂的API、高效的数据绑定和灵活的组件系统,受到很多前端开发人员的青睐。国内很多公司都在使用vue进行项目开发,我们正在使用的简书,便是基于Vue来构建的。 我们知道,SPA前端渲染存在两大痛点:(1)SEO。搜索引擎爬虫难以抓取客户端渲染的页面meta信息和其他SEO相关信息,使...
摘要:是一款基于的服务端渲染框架,跟的异曲同工。该配置项用于定义应用客户端和服务端的环境变量。 Vue因其简单易懂的API、高效的数据绑定和灵活的组件系统,受到很多前端开发人员的青睐。国内很多公司都在使用vue进行项目开发,我们正在使用的简书,便是基于Vue来构建的。 我们知道,SPA前端渲染存在两大痛点:(1)SEO。搜索引擎爬虫难以抓取客户端渲染的页面meta信息和其他SEO相关信息,使...
阅读 2882·2021-09-26 10:18
阅读 5128·2021-09-22 15:02
阅读 2746·2019-08-30 15:53
阅读 1820·2019-08-29 18:41
阅读 2670·2019-08-27 10:58
阅读 2606·2019-08-26 13:49
阅读 2725·2019-08-26 12:17
阅读 886·2019-08-26 11:49