10.4 Vue 父子传值
简单示例
APP.vue
<template>
<div>
<img :src="imgSrc">
<!-- 父子传值 --> <!-- 自定义属性直接 通过属性传值 -->
<Vheader :cityArray="citys"></Vheader> <!-- 自定义事件 -->
<Vfooter v-on:addZhuangHandler="addHandler"></Vfooter>
</div> </template> <script>
import imgSrc from './assets/bili.jpg'
import Vheader from './components/Vheader'
import Vfooter from './components/Vfooter' export default {
name: "app",
data() {
return {
imgSrc: imgSrc,
citys:["山东","北京","深圳"] }
},
methods:{
addHandler (str){
// alert(str)
this.citys.push(str);
alert(this.citys);
}
},
components: {
Vheader,
Vfooter
}, } </script> <style scoped> </style>
Vfooter.vue
<template>
<footer class="wrap">
我是Vfooter,我想测试下给父级组件添加数据: <br>
<button @click="addCunHandler">给父级组件的数据增加点什么,添加一个村庄</button>
</footer>
</template> <script>
export default {
name: "Vfooter",
data() {
return {}
},
methods:{
addCunHandler(){
// 触发自定义事件
this.$emit('addZhuangHandler','破村庄');
},
}, }
</script> <style scoped> </style>
Vheader.vue
<template>
<header class="wrap"> 我是header,我从父级组件那里拿到了数据很开心:
<ul v-for="item in cityArray">
{{item}}
</ul>
</header>
</template> <script>
export default {
name: "Vheader",
data() {
return {}
},
methods: {},
props: {
cityArray: Array
// 如果验证不通过会报错
// [Vue warn]: Invalid prop: type check failed for prop "cityArray". Expected String with value "山东,北京,深圳", got Array
},
}
</script> <style scoped> </style>
实例详解
app-----> header
父组件向子组件传值
<!-- 自定义属性直接 通过属性传值 -->
<Vheader :cityArray="citys"></Vheader>
子组件从 父组件拿值
拿值的时候必须要校验类型,
拿值的时候的要对应父组件的自定义属性一致才可以拿到
props: {
cityArray: Array
]
如果有错误是拿不到的
如果写错类型也会报错。
// 如果验证不通过会报错
// [Vue warn]: Invalid prop: type check failed for prop "cityArray". Expected String with value "山东,北京,深圳", got Arra
footer------->app
子组件向父组件传值
在methods 中加入事件触发传值操作
利用 $emit() 方法传值
$emit("自定义属性的名字","要被传入的数据")
methods:{
addCunHandler(){
// 触发自定义事件
this.$emit('addZhuangHandler','破村庄');
},
},
父组件得到子组件传递值
父组件中首先要对子组件中那提供一个自定义的属性
<!-- 自定义事件 -->
<Vfooter v-on:addZhuangHandler="addHandler"></Vfooter>
对这一属性绑定一个事件,接受的数据将会作为参数被此事件调用
methods:{
addHandler (str){
this.citys.push(str);
alert(this.citys);
}
},
总结
- 自定义属性传值
- 校验后取值
- $emit("自定义属性的名字","要被传入的数据")
10.4 Vue 父子传值的更多相关文章
- Vue父子传值
昨天创建完项目以后,今日首先使用项目来做一个简单的导航栏体会一下Vue的使用 1.项目的结构: 2.首先在Vheader.Vue中编辑代码: <template> <header c ...
- day 100天 VUE 父子传值,单页面.
一 .静态资源导入方法 启动服务 npm run serve <template> <div id ="app"> <h3>{{msg}}& ...
- vue父子传值的具体应用
最近我负责的项目已经迭代到第四版了,我作为一个没啥经验的小菜鸟也成长了很多. 在这一版开发开始之前,我老大就要求我在开发过程中尽量实现组件化,因此,我也遇到了很多问题,但基本都解决了,所以趁周末把这些 ...
- vue父子传值与非父子传值
大概梳理下传值的几种方式 一:父子组件传值 props方式 子组件对外暴露方法并向父组件传递由于触发方法导致的值的变化,父组件接收子组件传递来的值:子组件接收父组件传递来的值,并根据传递来的值在子组件 ...
- vue 父子传值,子页面没有实时刷新的问题
在做高德地图的时候,发现列表点击编辑的时候,地图不能实时更新: <el-form-item label="门店坐标:" :label-width="formLabe ...
- vue——父子传值
转载地址:https://blog.csdn.net/xr510002594/article/details/83304141
- vue父子(父传子)传值
vue2.0中,实现父子组件间的传值,需要依靠一个props的属性,作为变量接收的对象. 注:vue.js文件引用的是本地的js文件,拷贝本机运行时,可以使用cnd替换. https://www.bo ...
- Blazor和Vue对比学习(基础1.3):属性和父子传值
组件除了要解决视图层展示.视图层与逻辑层的数据绑定,还需要解决一个重大问题,就是在组件树中实现数据传递,包括了父到子.子到父.祖到孙,以及任意组织之间.而我们上一章讲到的实现双向绑定的两个指令,Vue ...
- vue父子组件之间传值
vue父子组件进行传值 vue中的父子组件,什么是父组件什么是子组件呢?就跟html标签一样,谁包裹着谁谁就是父组件,被包裹的元素就是子组件. 父组件向子组件传值 下面用的script引入的方式,那种 ...
随机推荐
- ubuntu16.04 部署配置LVS主从
实验环境---ubuntu16.04 四台机器:10.211.55.13—55.16 具体实验环境配置如下: 10.211.55.102 LVS_VIP 10.211.55.13 LVS_MAST ...
- 小程序实践(十一):showModal的使用
显示模态对话框,确定和取消两个选择+标题+内容的对话框 . // 编辑用户性别 tapSex:function(res){ var that = this wx.showModal({ title: ...
- 小米Max 2获取ROOT超级权限的经验
小米Max 2有么好方法开通了root权限?大家都了解,安卓手机有root权限,如果手机开通了root相关权限,能够实现更完美的功能,打比方大家企业的营销部门的同事,使用某些营销工具都需要在root权 ...
- 对国内IoT的展望
这个世界上让任何人最安心的,莫过于自己能够完全控制,反之什么都无法控制的,万念俱灰之下,最后只有自我了结.芸芸众生都是在这个之间徘徊,尽可能的去掌控,尽可能的去拥有,觉得能够安心,其实只是自由的内心被 ...
- WPS客户端更新日志留着备用
WPS Office (10.1.0.7520)==========================================新增功能列表------------WPS文字1 拼写检查:新增“中 ...
- PJSUA2开发文档--第十一章 网络问题
11 网络问题 11.1 IP地址更改 请参阅wiki 处理IP地址更改.请注意,本指南使用PJSUA API作为参考. 11.2 被阻止/过滤的网络 请参阅维基百科 通过阻止或过滤的VoIP网络
- Redis(十一):Redis的事务功能详解
相关命令 1. MULTI 用于标记事务块的开始.Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列. 这个命令的运行格式如下所示: MULTI 这个命令的返回值 ...
- centos7中mail实测(qq邮箱)
一.安装mailx sendmail 1.1查看是否已经安装 yum install -y mailx sendmail 如果已经安装,会提示已经安装,没有安装会自动安装. ...
- Linux/Unix环境下的make命令详解
https://blog.csdn.net/wxqian25/article/details/21226711
- Linux Collection:文本编辑问题
PAS 删除文本中的^M标记 由于历史原因,不同操作系统使用不同的方式表示文件的换行符\n.现代计算机系统中的文件换行和早期的打字机有关,主要和两个控制符有关:line feed (LF) ,carr ...