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 】
相关推荐:
米侠浏览器网页背景异常怎么办 米侠显示修复
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
Linux系统命令中tree命令详解
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何在IIS服务器上快速部署高效网站?
什么是javascript作用域_全局和局部作用域有什么区别?
如何快速启动建站代理加盟业务?
iOS发送验证码倒计时应用
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
在centOS 7安装mysql 5.7的详细教程
英语简历制作免费网站推荐,如何将简历翻译成英文?
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
jQuery 常见小例汇总
千库网官网入口推荐 千库网设计创意平台入口
Python高阶函数应用_函数作为参数说明【指导】
*服务器网站为何频现安全漏洞?
微信小程序 input输入框控件详解及实例(多种示例)
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
,南京靠谱的征婚网站?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Android使用GridView实现日历的简单功能
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Bootstrap整体框架之CSS12栅格系统
如何登录建站主机?访问步骤全解析
Laravel storage目录权限问题_Laravel文件写入权限设置
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Laravel怎么判断请求类型_Laravel Request isMethod用法
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
javascript基于原型链的继承及call和apply函数用法分析
如何在 React 中条件性地遍历数组并渲染元素
如何快速查询网址的建站时间与历史轨迹?
JS弹性运动实现方法分析
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
免费视频制作网站,更新又快又好的免费电影网站?
Python面向对象测试方法_mock解析【教程】
如何快速上传建站程序避免常见错误?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel如何使用Sanctum进行API认证?(SPA实战)
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
JavaScript如何实现错误处理_try...catch如何捕获异常?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何在Windows虚拟主机上快速搭建网站?

