• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Vue中组件之间数据的传递的示例代码

vue 搞代码 4年前 (2022-01-08) 20次浏览 已收录 0个评论

本篇文章主要介绍了Vue中组件数据的传递的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Vue中组件的作用域是隔离的,父组件中的数值子组件看不到!也就是说,用angular作比喻,组件的scope天生是scope:()的!
如果父组件需要往子组件中传数据,此时应该使用标签属性:

 <div id="app"> </div>

子组件中,用props声明这个值即可。并且在template里面可以直接使用{{c}}来获得这个属性,而不需要写为{{this.props.c}}

 import Vue from "vue"; const MyCompo = Vue.extend({ template : ` <div> <h1>我是MyCompo组件,我的a值是{{a}}</h1><h1>子组件c:{{c}}</h1></div> `, props : ["c"], data : function(){ return { a : 1, b : 2 } }, methods : { add : function(){ this.a ++; } } }); export default MyCompo; 

如果父组件中要传一个动态的值(就是父组件的data,不是死数),此时要用v-bind:来传递。
v-bind指令表示动态属性。

 <div id="app"> </div>

此时我们研究,子组件改变了这个值,父组件的值变不变。答:默认情况下不变!

  import Vue from "vue"; const MyCompo = Vue.extend({ template : ` <div> <h1>我是MyCompo组件,我的a值是{{a}},我的c值是:{{c}}</h1></div> `, props : ["c"], methods : { add : function(){ this.c ++; } } }); export default MyCompo; 

子组件的c值变化了,但是外面不变!

也就是说,默认情况下,父组件中的属性值如果传给儿子,子组件改变这个值,仅仅改变子组件中的值,父组件中的值不变。

如果非要让子组件能够改变父组件中的值,要加sync修饰符:

 

上面的c属性是一个基本类型值常数3。此时我们试试引用类型值。

父组件中增加d属性,值是json。

 import Vue from "vue"; import MyCompo from "./components/MyCompo.js"; new Vue({ el : "#app", data : { c : 333, d : { v : 8888 } }, components : { "my-compo" : MyCompo } }); 

传给子组件:

   <title>Vue学习</title> <div id="app"> <h1>我是父亲,我的c: {{c}} ,我的d:{{d | json}}</h1></div>

子组件改变d的时候,父亲也变了!!!虽然我们没加.sync。

总结:

Vue中基本类型值默认单向传递,双向加sync。

引用类型值,默认双向传递。

小tip,v-bind的缩写语法就是冒号。

属性可以验证类型、必填等等。

 prop<b>本文来源gao@dai!ma.com搞$代^码!网7</b>s : { "c" : null, "d" : null, "e" : { type : Number, required : true } }, 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是Vue中组件之间数据的传递的示例代码的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Vue中组件之间数据的传递的示例代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址