vue中props将父组件方法传递,vue props传递一个对象

  vue中props将父组件方法传递,vue props传递一个对象

  本文主要介绍在vue中使用prop进行父子通信时的注意事项。通过实例非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友可以参考一下。

  

目录

  注1注2注3:单数据流注4汇总

  

注意点一

  当上传一个普通的字符串到一个组件时,我们可以直接这样写:

  一个名字=张三/一

  需要注意的是,当我们要传入一个数字时,需要用v-bind绑定一个数字,否则无法识别数字,vue会认为你传入的是一个字符串数字。

  特殊值包括:当将这些类型的数据转移到字符键时,我们需要使用v-bind来告诉vue我们正在转移静态值。

  布尔数组对象one name=张三:age=1/one

  

注意点二

  当我们想把一个对象的所有属性传递给子组件时,我们可以这样写:

  //要传输的对象

  帖子:{ id: 1,标题:我与Vue的旅程 }

  //直接使用v-bind将post对象的所有属性传递给子组件。

  一个v-bind=post /one

  子组件接收:

  //直接接受父组件传递的对象中的属性名即可。

  道具:[id , title],

  

注意点三:单项数据流

  的所有道具在它们的父道具和子道具之间制造一个单向下行绑定:父道具的更新会向下流到子组件中,但反之则不会。这将防止子组件意外更改父组件的状态,从而使应用程序的数据流难以理解。

  此外,每次父组件更改时,子组件中的所有属性都将刷新为最新值。这意味着您应该在子组件中更改属性。如果您这样做,Vue将在浏览器的控制台中发出警告。

  在两种常见情况下,您会尝试更改道具:

  这个 prop 用来传递一个初始值;这个子组件接下来希望将其作为一个本地的 prop 数据来使用。在这种情况下,最好定义一个本地数据属性,并使用该属性作为其初始值:

  道具:[initialCounter],

  数据:函数(){

  返回{

  计数器:this.initialCounter

  }

  }这个 prop 以一种原始的值传入且需要进行转换。在这种情况下,最好使用这个属性的值来定义一个计算属性:

  道具:[size],

  计算值:{

  normalizedSize:函数(){

  返回this.size.trim()。toLowerCase()

  }

  }注意在JavaScript中,对象和数组都是通过引用传入的,所以对于一个数组或者对象类型的道具,在子组件将会中改变这个对象或者数组本身会影响父组件的状态。

  

注意点四

  当使用一个组件时,如果我们在它上面写了非props属性,那么这些属性将被用作组件根元素上的自定义属性。如果组件根元素具有相同的属性,则该属性将被覆盖。使用组件时传入的值会作为最终的属性值。

  而styleattribute会稍微聪明一点,就是把两边的值合并得到最终的值。

  如果我们不希望这个缺省值向组件的根元素添加非props属性,我们可以在组件的选项中配置inheritAttrs: false。设置后,默认情况下,非props属性不会添加到根元素中。

  其次,我们还可以结合$attrs来手动决定将这些非道具属性赋予哪个元素。

  例如,所有属性都可以分配给标签。

  模板

  div class=one

  span v-bind=$attrs/span

  /div

  /模板

  

总结

  关于vue中使用prop进行父子交流时的注意事项这篇文章就到这里了。更多关于vue中使用prop进行亲子沟通的信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: