vue组件Prop传递数据的实现示例
发布时间 - 2026-01-11 02:50:06 点击率:次组件实例的作用域是孤立的。这意味着不能(也不应该)在子组件的模板内直接引用父组件的数据。要让子组件使用父组件的数据,我们需要通过子组件的props选项。

prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。这是为了防止子组件无意修改了父组件的状态。
每次父组件更新时,子组件的所有 prop 都会更新为最新值。这意味着你不应该在子组件内部改变 prop。
1、Prop静态传递数据
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body >
<div id="app">
<!--静态传递数据-->
<my-component message="hello" name="刘二狗" age="18"></my-component>
</div>
</body>
<script>
Vue.component('my-component',{
//子组件使用父组件的数据 message name age
props:['message','name','age'],
//用data选项对数据进行处理
data:function(){
return{
message1: this.message +'用data选项对数据进行处理'
}
},
//用计算属性选项对数据进行处理
computed:{
message2:function(){
return this.message + '用计算属性选项对数据进行处理'
}
},
template:'<div>' +
'<span>{{message1}}</span><br>'+
'<span>{{message2}}</span><br>'+
'<span>{{message}} {{name}}今年{{age}}了</span><br>'+
'</div>'
})
new Vue({
el:'#app'
})
</script>
</html>
输出结果:
2、Prop动态传递数据
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body >
<div id="app">
<input v-model="parentMsg"><br>
<my-component :message="parentMsg"></my-component>
</div>
</body>
<script>
Vue.component('my-component',{
props:['message'],
data:function(){
return{count:this.message+'刘三狗的嫉妒了'}
},
computed:{
normalizedSize: function () {
return this.message.trim().toLowerCase()
}
},
template:'<div>' +
'<span>{{message}}---{{normalizedSize}}</span><br>'+
'<span>{{count}}</span>'+
'</div>'
})
new Vue({
el:'#app',
data:{
parentMsg:'哈哈哈'
}
})
</script>
</html>
输出结果:
3、Prop验证,我们可以为组件的 props 指定验证规格。如果传入的数据不符合规格,Vue 会发出警告。在前台的控制器中可以看到警告信息。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="app">
<example :prop-d="message"></example>
</div>
</body>
<script>
Vue.component('example', {
props: {
// 基础类型检测 (`null` 意思是任何类型都可以)
propA: Number,
// 多种类型
propB: [String, Number],
// 必传且是字符串
propC: {
type: String,
required: true
},
// 数字,有默认值
propD: {
type: Number,
default: 100
},
// 数组/对象的默认值应当由一个工厂函数返回
propE: {
type: Object,
default: function () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator: function (value) {
return value > 10
}
}
},
template:'<span>{{propD}}</span>'
})
new Vue({
el:'#app',
data:{
message:'propD验证只能传入数字类型'
}
})
</script>
</html>
控制台输出的警告信息:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# vue
# Prop传递数据
# 组件传递数据
# vue.js组件传递数据
# vue父组件向子组件(props)传递数据的方法
# vuejs动态组件给子组件传递数据的方法详解
# vue.js组件之间传递数据的方法
# vue组件中使用props传递数据的实例详解
# vue中各组件之间传递数据的方法示例
# Vue2.x中的父组件传递数据至子组件的方法
# vue2.0 父组件给子组件传递数据的方法
# vue子组件使用自定义事件向父组件传递数据
# vue项目中做编辑功能传递数据时遇到问题的解决方法
# Vue.js组件使用props传递数据的方法
# 默认值
# 这是
# 也不
# 这意味着
# 你不
# 我们可以
# 可以看到
# 自定义
# 要让
# 不符合
# 绑定
# 为了防止
# 大家多多
# 器中
# title
# UTF
# script
# type
# lang
# head
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在自有机房高效搭建专业网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Python数据仓库与ETL构建实战_Airflow调度流程详解
BootStrap整体框架之基础布局组件
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
php json中文编码为null的解决办法
如何在阿里云通过域名搭建网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
Laravel怎么实现验证码(Captcha)功能
如何打造高效商业网站?建站目的决定转化率
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
iOS正则表达式验证手机号、邮箱、身份证号等
java ZXing生成二维码及条码实例分享
linux top下的 minerd 木马清除方法
三星网站视频制作教程下载,三星w23网页如何全屏?
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
Java垃圾回收器的方法和原理总结
微信h5制作网站有哪些,免费微信H5页面制作工具?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
做企业网站制作流程,企业网站制作基本流程有哪些?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel如何使用查询构建器?(Query Builder高级用法)
详解Android图表 MPAndroidChart折线图
北京企业网站设计制作公司,北京铁路集团官方网站?
如何在宝塔面板中创建新站点?
如何用狗爹虚拟主机快速搭建网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
Swift中switch语句区间和元组模式匹配
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
高防服务器租用指南:配置选择与快速部署攻略
如何注册花生壳免费域名并搭建个人网站?
再谈Python中的字符串与字符编码(推荐)
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
佛山网站制作系统,佛山企业变更地址网上办理步骤?
高端云建站费用究竟需要多少预算?
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何正确下载安装西数主机建站助手?

