tnblog
首页
视频
资源
登录
愿你出走半生,归来仍是少年
排名
3
文章
317
粉丝
22
评论
14
bootstrap 栅格布局一小例子
剑轩 : 后端写样式有点痛苦哇
一点flex布局的运用
剑轩 : 后端写样式有点痛苦哇
vue.js常用指令
剑轩 : 可以可以,多总结一点
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

vue组件间传参。vue组件间传递参数。vue组件参数类型

7440人阅读 2022/10/13 20:56 总访问:2062923 评论:0 收藏:0 手机
分类: 前端

一、父组件向子组件传值

即父组件通过属性的方式向子组件传值,子组件通过 props 来接收。
在父组件的子组件标签中绑定自定义属性

  1. // 父组件
  2. <user-detail :myName="name" />
  3. export default {
  4. components: {
  5. UserDetail
  6. }
  7. ......
  8. }

在子组件中使用props(可以是数组也可以是对象)接收即可。可以传多个属性。

  1. // 子组件
  2. export default {
  3. props: ['myName']
  4. }
  5. /*
  6. props: { myName: String } //这样指定传入的类型,如果类型不对会警告
  7. props: { myName: [String, Number] } // 多个可能的类型
  8. prosp: { myName: { type: String, requires: true } } //必填的的字符串
  9. props: {
  10. childMsg: {
  11. type: Array,
  12. default: () => []
  13. }
  14. } // default指定默认值
  15. 如果 props 验证失败,会在控制台发出一个警告。
  16. */

子组件接收的父组件的值分为引用类型和普通类型两种:
普通类型:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)
引用类型:数组(Array)、对象(Object)
基于 vue 的单向数据流,即组件之间的数据是单向流通的,子组件是不允许直接对父组件传来的值进行修改的,所以应该避免这种直接修改父组件传过来的值的操作,否则控制台会报错。

常用类型的使用示例:

  1. // 组件参数
  2. props: {
  3. percentage: {
  4. type: Number,
  5. default: 0
  6. },
  7. title: {
  8. type: String,
  9. default: ''
  10. },
  11. show: {
  12. type: Boolean,
  13. default: false
  14. },
  15. // 列配置
  16. columnsConfg: {
  17. type: Array,
  18. default: () => {
  19. return []
  20. },
  21. },
  22. // 数据项
  23. rowdata: {
  24. type: Array,
  25. default: () => {
  26. return []
  27. },
  28. // required: true
  29. }
  30. // 对象参数
  31. datas: {
  32. type: Object,
  33. default: () => {
  34. return {CompleteRate:50,PassRate:60,TrueRate:80}
  35. },
  36. }
  37. },
  • 如果传过来的值是简单数据类型,是可以在子组件中修改,也不会影响其他兄弟组件内同样调用了来自该父组件的值。

  • 具体操作是可以先把传过来的值重新赋值给data中的一个变量,然后再更改那个变量。

  1. // 子组件
  2. export default {
  3. props: ['myName'],
  4. data() {
  5. return {
  6. name : this.myName // 把传过来的值赋值给新的变量
  7. }
  8. },
  9. watch: {
  10. myName(newVal) {
  11. this.name = newVal //对父组件传过来的值进行监听,如果改变也对子组件内部的值进行改变
  12. }
  13. },
  14. methods: {
  15. changeName() {
  16. this.name = 'Lily' // 这里修改的只是自己内部的值,就不会报错了
  17. },
  18. }
  19. }

注:如果不使用 watch 来监听父组件传递的 myName 值,子组件中的 name 值是不会随着父组件的 myName 值进行改变,因为 data 中 name: this.myName 仅仅只是定义了一个初始值。

如果引用类型的值,当在子组件中修改后,父组件的也会修改,因其数据是公用的,其他同样引用了该值的子组件也会跟着被修改。可以理解成父组件传递给子组件的值,就相当于复制了一个副本,这个副本的指针还是指向父组件中的那个,即共享同一个引用。所以除非有特殊需要,否则不要轻易修改。

原文:https://www.php.cn/vuejs/474702.html


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

vue.js+Layer实现表格数据绑定与更新

一:使用Vue.js绑定好数据与更新事件 使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接...

vue.js 实现省市联动

HTML代码&lt;divid=&quot;pro_citys&quot;&gt; 省:&lt;selectid=&quot;provice&quot;v-on:change=&quot;prochange()&quo...

vue.js常见问题

一:花括号当做字符串显示的问题1:检查下绑定到vue.js的id是否重复,如果id重复了,就有可能存在这种问题,因为有可能把数...

vue.js常用指令

v-html可以把字符串当成一个html来渲染,而不是原样输出Html类似.net mvc中的@Html.Raw()方法&lt;divv-html=&quot;item.tit...

干货!div滚动到一定位置就固定他。vue中实现一侧滚动到底部就固定

尊重原创:转载请注名出处div滚动到一定位置就固定他,例如左边的内容很多,右边的内容很少,如果不处理滚动到一定位置后右...

vue.js常用指令,事件绑定等,vue过滤器解析状态过滤器多个参数。vue表格状态解析。vue解析类型,element ui解析类型,状态,el-tag

按照html的编码显示:v-html&lt;div class=&quot;font_info&quot; v-html=&quot;item.Content&quot;&gt;{{item.Content}}&l...

vue.js if用法

vue.js if可以做一些判断例如我们要把下面这个输出varvm=newVue({ el:&quot;#content&quot;, data:{ titles:[&quot;小明...

vue.js 学习日记第一章-安装vue开发环境

官网:https://cn.vuejs.org/v2/guide/ 这是一篇学习性文章,不定时更新,用来记录我学习vue.js的过程。 首先,是v...

vue.js 学习日记第二章-在vue中编写function及一些简单指令

官网:https://cn.vuejs.org/v2/guide/ vue.js 学习日记第一章:http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第三章-vue中的简单事件及事件修饰符

官网:https://cn.vuejs.org/v2/guide/ vue.js 学习日记第二章:http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第四章-vue中文本框数据获取与绑定及computed计算属性

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第三章: http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第五章-v-if和v-for指令的使用方式

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第四章: http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第六章-vue组件初步学习

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第五章: http://www.tnblog.net/18323015640/article/details/2...

vue.js学习日记第七章-搭建脚手架

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第六章: http://www.tnblog.net/18323015640/article/details/2...

vue实现好友选中效果

逛过vue官网肯定会发现一个有趣的指令“v-for”,相比与以前拼接html代码确实要上档次一点,而且减少了工作量,先看一波效...

js时间格式化vue.js时间格式化,带T 时间格式化

也可以借助moment库, 参考:https://www.tnblog.net/aojiancc2/article/details/8079moment库有点大,推荐可以使用day.js...