vue+vux 父组件控制子组件弹层
知识点用到了vue父子组件之间的传值,以及使用watch和v-model控制vux中XDialog组件。
需要注意的问题:
1.父组件向子组件传值使用的是props(单向传值),子组件创建props,然后创建一个名为invitor的属性,父组件对其赋值即可,但是单向传值,子组件不能通过改变props的属性,直接去改变父组件的值。
2.子组件向父组件传值,实际是在父组件自定义了一个事件,子组件去调用这个自定义事件并传值。
this.$emit('changingType','false');
3.watch的使用和XDialog组件的使用
以下是具体代码
子组件
<template>
<div>
<x-dialog class="invitorMask" hide-on-blur v-model="showing" @on-hide="hide">
子组件弹窗
</x-dialog>
</div>
</template> <script>
import {XDialog} from 'vux'
export default {
components: {
XDialog
},
props:['invitor'],
data () {
return {
showing:this.invitor,//因为props是单向传值,所以需要新声明一个局部变量,并将invitor初值赋值给它
}
},
watch:{
invitor(cur){//监听invitor值的变化
console.log('currentVal:'+cur)
if(cur == true){//当父组件传递值为true是,则显示
this.showing = true;
}
},
}
,
methods: {
hide(){//弹层消失事件
this.$emit('changingType','false');//调用父组件的自定义事件,并传值
}
}
} </script>
父组件
<template>
<div style="text-align: center">
<div style="margin-bottom: 50px">父组件</div>
<a v-model="isShow" @click="showlDialog">弹窗</a>
<!--动态的向子组件赋值-->
<Invite :invitor="isShow" @changingType="showlDialog"> </Invite>
</div>
</template> <script>
import Invite from '@/pages/s/invite/Index.vue' //引入子组件 export default {
components: {
Invite //注册子组件
},
data () {
return {
isShow:false,
}
},
methods: {
showlDialog(data){
console.log(data)
if(data == 'false'){
this.isShow = false;
}else{
this.isShow = true;
}
console.log(this.isShow)
}, }
}
</script>
demo界面,点击父组件的弹窗按钮,子组件弹窗显示,点击空白处,子组件弹窗隐藏

vue+vux 父组件控制子组件弹层的更多相关文章
- vue中父级与子组件生命周期的先后顺序
1.vue的生命周期 2.views/createrCustormer.vue为父级 <template> <expressService /> </ ...
- 解决vue项目中遇到父组件的按钮或操作控制重新挂载子组件但是子组件却无效果的情况
在vue项目中终会遇到需要父组件的按钮或操作控制重新挂载子组件的需求,我在新项目中就遇到这种需求.真实场景是父组件的早,中,晚三个按钮(代表三个时间段)来控制子组件的table表格列的动态加载. 子组 ...
- vue中的父组件及子组件生命周期的执行顺序
一.没有任何任何显示与隐藏限制条件的情况下: 1.运行的顺序依次是: 父组件created→父组件beforeMounted→子组件created→子组件beforeMounted→子组件mounte ...
- Vue的父子组件v-model双向绑定,父组件修改子组件中绑定的v-model属性
先来看下实现的效果,父组件中有个文本框,在点击下面按钮时弹出抽屉,抽屉里也有个文本框,文本框里的初始值要和父组件的文本框同步,并且修改抽屉里的文本框值时 父组件里的文本框值也要跟着改变 网上有大概三种 ...
- vue 父组件传递子组件事件
在开发中,碰到一个需要从父组件传入方法,子组件点击触发,说白了就是,把方法传入给子组件调用 <el-col v-for='data in spreadFormat.icons' class=&q ...
- Vue中,父组件向子组件传值
1:在src/components/child/文件夹下,创建一个名为:child.vue的子组件 2:在父组件中,设置好需要传递的数据 3:在App.vue中引入并注册子组件 4:通过v-bind属 ...
- VUE 父组件与子组件交互
1. 概述 1.1 说明 在项目过程中,会有很多重复功能在多个页面中处理,此时则需要把这些重复的功能进行单独拎出,编写公用组件(控件)进行引用.在VUE中,组件是可复用的VUE实例,此时组件中的dat ...
- Vue父组件向子组件传递一个动态的值,子组件如何保持实时更新实时更新?
原文:https://blog.csdn.net/zhouweixue_vivi/article/details/78550738 2017年11月16日 14:22:50 zhouweixue_vi ...
- Vue 组件&组件之间的通信 之 父组件向子组件传值
父组件向子组件传值:父组件通过属性向下传值的方式和子组件通信: 使用步骤: 定义组件:现有自定义组件com-a.com-b,com-a是com-b的父组件: 准备获取数据:com-b要获取父组件dat ...
随机推荐
- Android逆向-java代码基础
作者:I春秋作家——HAI_ 0×00 前言 看这篇可以先看看之前的文章,进行一个了解.Android逆向-java代码基础(1)Android逆向-java代码基础(2) 之前看到有大佬用smali ...
- [Swift实际操作]七、常见概念-(8)日历Calendar和时区TimerZone
本文将为你演示日历的一些属性,以及如何利用日历,查询是否为昨天.今天和明天. 首先引入需要用到的界面工具框架 import UIKit 然后生成一个日历对象,并获得用户当前的日历. var calen ...
- centos7系统的进程管理
使用top命令,实时查看后台的进程,会看到以下信息 官方的解释: us: user cpu time (or) % CPU time spent in user space sy: system cp ...
- 实验三:分别用for、while和do-while循环语句以及递归方法计算n!,并输出算式
一.用for循环计算n! package for_package; import java.util.*;//导入含有输入类的包 public class for_class { /** * @par ...
- POJ 1247
#include<iostream> using namespace std; int main(){ ,sum=; int * guest; do{ sum=; sam_num=; ci ...
- [摘]HttpContext, HttpRequest, HttpResponse, HttpRuntime, HttpServerUtility
[摘]http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html HttpRuntime HttpRuntime公开了一个静态方法 U ...
- 杂记---Mongo的Invalid BSON field name $gte
1.前言 这几天使用mongo的时候遇到了一个异常:Invalid BSON field name $gte,该问题可能会有很多小伙伴会遇到,因此记录一下解决过程.起因是用JAVA翻译一个其他语言写的 ...
- hive 0.12.0版本 问题及注意事项
下载地址: http://archive.cloudera.com/cdh5/cdh/5/hive-0.12.0-cdh5.1.5.tar.gz 用远程mysql作为元数据存储 创建数据库,设置字符集 ...
- 【数组】Search a 2D Matrix
题目: Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the f ...
- Android 7.0 FileProvider 使用说明
FileProvider FileProvider 这个组件在Android 22.0.0 (也就是 Android 5.0 ) 版本下加入进Android系统,该组件是ContentProvider ...