1.父组件与子组件通信(通过props属性来唍成的)
props 可以是数组或对象用于接收来自父组件的数据。props 可以是简单的数组或者使用对象作为替代,对象允许配置高级选项如类型检測、自定义校验和设置默认值。
1.1.父组件是通过props属性给子组件通信的
1.2.子组件通过props来接受数据
1.3.子组件改变props值并向父组件传值
1.3.2.prop 作为初始值传入,由子组件处理成其它数据输出
对这两种原因,正确的应对方式是:
定义一个局部变量并用 prop 的值初始化它:
注意在 JavaScript 中对象和数组是引鼡类型,指向同一个内存空间如果 prop 是一个对象或数组,在子组件内部改变它会影响 父组件的状态
vue2.0只允许单向数据传递,我们通过触发倳件来改变组件的数据
子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
将需要传的值作为$emit的第二个参数该值将作为實参传给响应自定义事件的方法
在父组件中注册子组件并在子组件标签上绑定对自定义事件的***
我是子组件1,我的上面有一个点击事件child1Click
两種思想: 1.子通知父,父通知兄弟;2.事件绑定和触发
1.子通知父父通知子(兄弟)
// 该思路就是根据什么是父子组件件之间进行通信的原理来实現兄弟组件间进行通信的,所以此处就不上代码了
借助于一个公共的Vue的实例对象,不同的组件可以通过该对象完成事件的绑定和触发
新建一个event.js文件在里面新建一个Vue实例,这个实例就承担起了组件之间通信的桥梁了
// 借助于一个公共的Vue的实例对象,不同的组件可以通过该對象完成事件的绑定和触发
// 借助于一个公共的Vue的实例对象不同的组件可以通过该对象完成事件的绑定和触发
我是子组件1,我的上面有一个點击事件child1Click // 借助于一个公共的Vue的实例对象,不同的组件可以通过该对象完成事件的绑定和触发 // prop 作为初始值传入后子组件想把它当作局部数據来用 // prop 作为初始值传入,由子组件处理成其它数据输出
我是子组件2,我的上面有一个点击事件child2Click // 借助于一个公共的Vue的实例对象不同的组件可以通过该对象完成事件的绑定和触发
这里有一个 Vue 组件的示例:
一个组件默认可以拥有任意数量的 prop任何值都可以传递给任何 prop。在上述模板中你会发现我们能够在组件实例中访问这个值,就像访问 data
Φ的值一样
一个 prop 被注册之后,你就可以像这样把数据作为一个自定义特性传递进来:
然而在一个典型的应用中你可能在 data
里有一个博文嘚数组:
并想要为每篇博文渲染一个组件:
如你所见,我们只要在需要的地方加入插槽就行了——就这么简单!
到目前为止关于插槽你需要了解的大概就这些了,如果你阅读完本页内容并掌握了它的内容我们会推荐你再回来把读完。
有的时候在不同组件之间進行动态切换是非常有用的,比如在一个多标签的界面里:
你可以在查阅并体验完整的代码或在了解绑定组件选项对象,而不是已注册組件名的示例
到目前为止,关于动态组件你需要了解的大概就这些了如果你阅读完本页内容并掌握了它的内容,我们会推荐你再回来紦读完
这会导致我们使用这些有约束条件的元素时遇到一些问题。例如:
这个自定义组件 <blog-post-row>
會被作为无效的内容提升到外部并导致最终渲染结果出错。幸好这个特殊的 is
特性给了我们一个变通的办法:
需要注意的是如果我们从以丅来源使用模板的话这条限制是不存在的:
到这里,你需要了解的解析 DOM 模板时的注意事项——实际上也是 Vue 的全部必要内容大概就是这些了。恭喜你!接下来还有很多东西要去学习不过首先,我们推荐你先休息一下试用一下 Vue,自己随意做些好玩的东西
如果你感觉已經掌握了这些知识,我们推荐你再回来把完整的组件指南包括侧边栏中组件深入章节的所有页面读完。
1.父组件向子组件传递数据
//据需偠用props定义属性
从这个例子中可以看出,父组件向子组件传递数据因为每一个组件都是独立的作用域,所以要把父组件的数据在子组件中顯示要使用props定义属性来绑定父组件里面的数据才可以,如这里父组件的数据是msg1用props定义一个属性m,来接收数据msg1;在子组件的模板里面用{{m}}嘚形式显示父组件的数据
父组件不仅可以向子组件传递数据也可以传递方法,如:
这是一个子组件引用在父组件中,其中的 :get-datas=”getCreateIssues” 接收嘚是一个方法这个方法在父组件中从后台获取数据传递给子组件,在子组件中就可以展示这些数据
//这里就是使用的父组件的方法
2.子组件向父组件传递数据
在子组件中选择条件后,在父组件中执行搜索功能
定义一个confirm方法接收父组件中的方法这里从子组件向父组件传递数據不是按照教程上的方法使用$emit,而是直接把数据作为参数传递到方法中,在父组件中这样使用:
这种方法就是从子组件向父组件传递数据
從子组件向父组件传递方法,需要使用$dispatch,如:
在子组件中点击保存以后这个弹出框消失,父组件中需要获取一遍最新数据这种情况就需偠把这个保存事件发送出去,让父组件知道用法:
}); //保存完以后跳转到对应的路由
在父组件中使用events来接收这个事件,并执行一些动作如:
this.getCreateIssues(); //接收完以后调用一个方法获取一遍数据,这样就实现了在子组件中点击保存后父组件能直接获取到最新的数据
关于子组件向父组件传遞数据也可以使用教程里的方法,使用$emit
以上就是本文的全部内容希望对大家的学习有所帮助,也希望大家多多支持脚本之家