当前位置: 首页 > news >正文

Vue23-props配置功能

Vue2&3-props配置功能

Vue2-props配置

  • 功能:接收从其他组件传过来的数据,将数据从静态转为动态
  • 注意:
    • 同一层组件不能使用props,必须是父组件传子组件的形式。父组件传数据,子组件接收数据。
    • 不能什么数据都接收,可能会出现一些奇怪的bug
    • props接收过来的数据不要修改,页面渲染可能没有问题,但控制台会报错,而且不符合规范

在这里插入图片描述

props的三种接收方法:

  • 第一种:数组形式(常用)
props:['a', 'b']
  • 第二种:类型限制
props : { a : String b : Number 
}
  • 第三种:类型限制,必要性限制,默认值
props : { a : {// type:类型(可以是数字,字符串等)type : Number, // required:true 或者 false// 设置为true视为a必须存在(必填项),没有a则控制台报错// 默认情况为false required : true }, b : { type : Number, // default:默认值// 在添加默认值之前该字段接收的数据已经有数值时,则默认值无效default : 10 }
}

传数据的形式(传数据的形式可对应任意一种接受数据的方法):

  • 在标签内传数据
// 父组件
<Info name="张三" :age="12"></Info>// 子组件
props : ['name', 'age']
  • 在data(){}中传数据
// 父组件
<Info :list="list"></Info>
data() {return {list : [{id:'001', name:'zhangsan', age:'10'},{id:'002', name:'lisi', age:'20'}]}
}// 子组件
props : ['list']
  • 在methods : {}中传数据
// 父组件
<Info :list="list"></Info>
method : {list(){......}
}// 子组件
props : ['list']
  • 注:传数据的形式有很多,不局限以上用法,也可以在computed : {}中传数据等

怎么用?

  • 父组件传数据,子组件接收数据
// App.vue
<template><div><h1>{{msg}}</h1>// 当出现第二 或 第三种带有限定类型的props时,要注意接受的数据是否符合类型限制// 不符合类型限制,但又不想修改类型,例如:age="12",可采用v-bind:// v-bind:简写形式 => ':',等号后面可以是常量或字符串等<Info name="张三" :age="12"></Info></div>
</template><script>import Info from './components/Info.vue'export default {name : 'App',data() {return {msg : '个人信息'}},components : {Info}}
</script>
// Info.vue
<template><div><h3>姓名:{{name}}</h3><h3>年龄:{{age}}</h3></div>
</template><script>
export default {name : 'Info',data() {return {name: this.name}},// 数组形式(常用)props : ['name','age']// 带有类型限定props : { name : String age : Number }// 类型限制,必要性限制,默认值props : { name : {type : Number, required : true },age : { type : Number, default : 10 }}
}
</script>

Vue3-props配置

props的配置在Vue2和Vue3上基本相同,这里主要说明如何用setup调用props的接受数据
  • setup如何调用props?
    • 在setup函数中是没有this关键字的,所以在代用setup函数之前,会先给setup传递一个参数(props)
    • props参数在setup中被包装成一个代理对象,同样具有响应式处理能力
// App.vue
<template><User name="jack" :age="age"></User>
</template><script>import { ref } from 'vue'import Info from './components/Info.vue'export default {name : 'App',components : {Info},setup(){let age = ref(20)return{age}}}
</script>
// Info.vue
<template><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2>
</template><script>export default {name : 'Info',// Vue3的props依旧是Vue2的接收方式,没变props : [name, age],// setup参数名可以随意,没要求setup(props){console.log(props.name);console.log(props.age);}}
</script>
http://www.lryc.cn/news/225266.html

相关文章:

  • 怎样使用ovsyunlive在web网页上直接播放rtsp/rtmp视频
  • MySQL | 查询接口性能调优、编码方式不一致导致索引失效
  • ASUS华硕灵耀X2 Duo UX481FA(FL,FZ)_UX4000F工厂模式原装出厂Windows10系统
  • 企业安全—三保一评
  • “深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”
  • Linux软件包(源码包和二进制包)
  • Leetcode-394 字符串解码(不会,复习)
  • 如何在Linux上搭建本地Docker Registry并实现远程连接
  • assets_common.min.js
  • 前端工程化(vue2)
  • 深度学习(生成式模型)——Classifier Guidance Diffusion
  • Hadoop架构、Hive相关知识点及Hive执行流程
  • P1529 [USACO2.4] 回家 Bessie Come Home 题解
  • Python语法基础(条件语句 循环语句 函数 切片及索引)
  • Debian 9 Stretch APT问题
  • 遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解
  • Android从一个APP跳转到另外一个APP
  • 我的创作纪念日——创作者2年
  • 大数据之LibrA数据库系统告警处理(ALM-12032 ommdba用户或密码即将过期)
  • C_3练习题
  • CentOS7 安装Jenkins 2.414.3 详细教程
  • chatglm3-6b记录问答对
  • k8s ingress 代理 mysql 3306端口
  • Informix管理共享内存
  • Webpack 中 Plugin 的作用是什么?常用 plugin 有哪些?
  • CSRF(跨站请求伪造)攻击演示
  • 图解三傻排序 选择排序、冒泡排序、插入排序
  • 【数据结构】树与二叉树(六):二叉树的链式存储
  • 后端Java日常实习生面试(2023年11月10日)
  • 使用iperf3在macOS上进行网络性能测试