vue中父子组件传递信息实现
为了能够在父子组件中实现双向控制,需要以下的步骤:
第一步:子组件中挖坑
(1)在需要父组件填充具体内容的地方挖坑,方式为
<slot name="message"></slot>
通过slot和name指定坑
第二步:父组件中填坑(具体内容)
(1)引入子组件作为其中一个模块
在父组件的script中通过import引入,然后通过components进行挂载,最后以标签的形式使用
(2)在子组件模块区域内,使用slot="name的值"指定需要填的坑
<p slot="message">//填坑的内容 <span>加入购物车成功</span>
</p>
上述两步只是实现了组件简单内容的填充,但涉及到值的传递,及控制时还需如下的操作
(1)父组件中的值传递到子组件中:
子组件使用props拿到传递过来的值(在子组件的export default中)
此时父组件与值组件的代码为:
父组件:
<Modal v-bind:mdShow="mdShow" >//Modal是子组件在父组件中
<p slot="message">
请先登录,否则无法加入购物车!
</p>
</Modal> <script>
import Modal from '@/components/Modal.vue'
export default {
data () {
return {
mdShow: false,
}
},
components: {
Modal
},
}
</script>
子组件中代码为:
<div v-bind:class="{'md-show':mdShow}">
<div class="confirm-tips">
<slot name="message"></slot>
</div>
</div>
<script>
export default{
props: ["mdShow"],//接受到来自父组件的值
data(){
return { }
},
}
}
</script>
(2)子组件控制父组件中的值:实质上通过子组件的方法间接 通过$emit方法去调用父组件中的方法,
例如父组件有一个方法为close
<p v-on:close="closeModal">
<Modal v-bind:mdShow="mdShow" >//Modal是子组件在父组件中
<p slot="message">
请先登录,否则无法加入购物车!
</p>
</Modal>
</p>
<script>
import Modal from '@/components/Modal.vue'
export default {
data () {
return {
mdShow: false,
}
},
components: {
Modal
},
methods:{
closeModel(){
this.mdShow = true;
}
}
</script>
(2)子组件中需要触发父中绑定的close方法
<div v-bind:class="{'md-show':mdShow}">
<div @clicki="closeModal">Close<div>
<div class="confirm-tips">
<slot name="message"></slot>
</div>
</div>
<script>
export default{
props: ["mdShow"],
data(){
return {
}
},
methods: {
closeModal(){
this.$emit("close");//触发父组件中定义的方法
}
}
}
</script>
初学阶段简单总结一下:子组件中挖坑,父组件填坑。
前面两步骤只是简单实现组件的加载,对于有值传递和控制,需要通过该后面两步的props接受来自父组件的值 和$emit触发父组件的方法实现。
vue中父子组件传递信息实现的更多相关文章
- Vue中父子组件执行的先后顺序
Vera Vue中父子组件执行的先后顺序探讨(转载) 前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看 ...
- Vue中父子组件执行的先后顺序探讨
前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看法. 问题如下:请问下图中父子组件执行的先后顺序? 首先, ...
- 简述vue中父子组件是怎样相互传递值的(基础向)
前言 首先,你需要知道vue中父组件和子组件分别指的是什么? 父组件:vue的根实例——用new Vue()构造函数创建的vue实例(实例会有一个挂载点,挂载点里的所有内容可理解为父组件的内容) ...
- vue中父子组件之间的传值、非父子组件之间的传值
在Vue实例中每个组件之间都是相互独立的,都有自己的作用域,所以组件之间是不能直接获取数据.在项目开发中一个组件可能需要获取另一个组件的值,我们可以通过其他方法间接的获取.所以,获取的方法有以下几种: ...
- vue 中父子组件之间的交互
1,最直接的也是最简单的方法是利用props来数据传值. 子组件定义如下: props: { iconClass: { type: String, required: true }, classNam ...
- vue中父子组件钩子的执行顺序
我们已经非常熟悉单个的vue组件的生命周期执行顺序了,但是,如果有嵌套组件,父子组件的生命周期的执行顺序是什么? 当父子组件在加载的时候,执行的先后顺序为 父beforeCreate -> 父c ...
- vue 中父子组件传值:props和$emit
更新----------- 1 父组件向子组件传值:通过props数组: 在vue-cli Login.vue父组件中有AcceptAndRefuse.vue子组件,首先import进子组件hello ...
- Vue中父子组件通讯——组件todolist
一.todolist功能开发 <div id="root"> <div> <input type="text" v-model=& ...
- vue中 父子组件的通讯
1.父组件可以使用 props 把数据传给子组件. 2.子组件可以使用 $emit 触发父组件的自定义事件 实例: 父组件: layout.vue 子组件:logform.vue 子组件: < ...
随机推荐
- Spring初学之FactoryBean配置Bean
实体bean: Car.java: package spring.beans.factorybean; public class Car { private String name; private ...
- iostream,iostream.h差异
1. 不加.h的是现在C++中规定的标准,目的在于使C++代码用于移植和混合嵌入时不受扩展名.h的限制, 避免因为.h而造成的额外的处理和修改而加.h的是c语言的用法,但是在c++中也支持这种用法, ...
- 在Android中使用实时调度(real-time)
Linux的线程调度策略中有FIFO和RT的实时调度方法,但是在Android中做了限制,普通用户不能修改线程的调度算法为FIFO和RT,必须ROOT用户才能更改.但问题是程序是以普通用户启动和运行的 ...
- element-ui dialog组件添加可拖拽位置 可拖拽宽高
edge浏览器下作的gifhttp://www.lanourteam.com/%E6... 有几个点需要注意一下 每个弹窗都要有唯一dom可操作 指令可以做到 拖拽时要添加可拖拽区块 header 由 ...
- LeetCode OJ:Populating Next Right Pointers in Each Node(指出每一个节点的下一个右侧节点)
Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...
- hdu4970(线性区间更新的懒操作)
思路是求出从每一点出发走到终点分别要受到多少伤害,然后和每个怪兽的血量比一下.给一个数组,告了哪些区间需要更新,我需要的就是都更新以后每个点的伤害值是多少.不涉及到区间查询,没必要用线段树或树状数组( ...
- http请求 详解
- AutoCAD2014的安装与激活
1.安装包与激活文件的下载 链接:https://pan.baidu.com/s/1I2-x9T__sQAgtvjkOyc_1Q 密码:5pd1 2.CAD的安装 此过程没什么特殊要求,安装时随便输入 ...
- vector的内存分配机制分析
该程序初步演示了我对vector在分配内存的时候的理解.可能有误差,随着理解的改变,改代码可以被修改. /* 功能说明: vector的内存分配机制分析. 代码说明: vector所管理的内存地址是连 ...
- 455. Assign Cookies Add to List
Assume you are an awesome parent and want to give your children some cookies. But, you should give e ...