自定义组件模拟v-model
在项目中常常会遇到一个组件中引入好几个子组件的情况,而引入的子组件和子组件之间又需要有数据交互,如果使用父组件作为桥梁进行数据交互这个也是可以的,只是有些麻烦,so最理想的是子组件和子组件自己去交互,记录一下使用子组件和子组件传参并模拟v-model的一个过程
一、创建项目
先使用cli 创建一个测试项目

二、添加依赖
在 package.json中添加所需的element依赖
"dependencies": {
"element-ui": "^2.10.1"
}
main.js引入
import 'element-ui/lib/theme-chalk/index.css'
import ElementUI from 'element-ui'
Vue.use(ElementUI);
三、创建组件
1. 定义header_component
<template>
<div class="nav-top">
<div class="go-back" >
<i class="el-icon-arrow-left icon-back"></i>
</div>
<div class="map-name" >{{name}}</div>
<div class="icon-style">
<i class="el-icon-edit icon-size" @click="showEditDialog"></i>
</div>
</div>
</template>
<script type="text/ecmascript-6">
import BToB from './b_to_b.js';
export default {
name: "header_component",
data(){
return{
name:'春节联欢晚会'
}
},
created(){
this.listenBtoBFromEdit();
},
methods:{
showEditDialog(){
BToB.$emit("switch_dialog",true);
},
listenBtoBFromEdit(){
BToB.$on("update_template_params",val =>{
this.name = val;
})
},
}
}
</script>
2. 定义edit_component
<script type="text/ecmascript-6">
import BToB from './b_to_b.js';
export default {
name: "edit_component",
data(){
return{
form: {
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
dialogVisible:false
}
},
watch:{
form:{
handler(newValue) {
BToB.$emit("update_template_params",newValue.name);
},
deep: true
}
},
created() {
this.listenBtoB();
},
methods:{
listenBtoB(){
BToB.$on("switch_dialog",val =>{
this.dialogVisible = val;
})
}
}
}
</script>
3. 定义代理js b_to_b.js
import vue from 'vue';
export default new vue();
4. 修改helloWorld 组件页面
<template>
<div class="container">
<header-component></header-component>
<edit-component></edit-component>
</div>
</template>
<script>
import HeaderComponent from "@/components/header_component";
import EditComponent from "@/components/edit_component";
export default {
methods: {
},
components:{
HeaderComponent,
EditComponent
}
}
</script>
<style scoped>
.left-menu{
width: 230px;
height:calc(100% - 40px);
}
</style>
完整目录结构
最后运行测试如图

完整demo 地址 https://github.com/dengxiaoning/brother-to-brother
自定义组件模拟v-model的更多相关文章
- Android自定义组件系列【5】——进阶实践(2)
上一篇<Android自定义组件系列[5]--进阶实践(1)>中对任老师的<可下拉的PinnedHeaderExpandableListView的实现>前一部分进行了实现,这一 ...
- Android开发之自定义组件和接口回调
说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...
- Android自定义组件
[参考的原文地址] http://blog.csdn.net/l1028386804/article/details/47101387效果图: 实现方式: 一:自定义一个含有EditText和Butt ...
- 自定义组件之MoreListView
前言 本文针对自定义组件进行一些分析.还是那句老话“授之于鱼不如授之以渔”.今天要讲的是一个自定义的可以分页的ListView. 网上都讲了些ListView分页的方法,那么为什么我在这里还需要自己写 ...
- axure复用-自定义组件,母版(模板)
组件(控件)是用于设计线框图的用户界面元素.在组件(控件)面板中包含有常用的控件库,如按钮.图片.文本框等.从组件面板中拖动一个控件到线框图区域中,就可以添加一个组件.组件可以从一个线框图中被拷贝(C ...
- ExtJS 自定义组件
主要参考的是官方文档 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
博客地址 : http://blog.csdn.net/shulianghan/article/details/41520569 代码下载 : -- GitHub : https://github.c ...
- 如何在自定义组件中使用v-model
文章属于速记,有错误欢迎指出.风格什么的不喜勿喷. 先来一个组件,不用vue-model,正常父子通信 <!-- parent --> <template> <div c ...
- 第三部分:Android 应用程序接口指南---第二节:UI---第十二章 自定义组件
第12章 自定义组件 Android平台提供了一套完备的.功能强大的组件化模型用于搭建用户界面,这套组件化模型以View和 ViewGroup这两个基础布局类为基础.平台本身已预先实现了多种用于构建界 ...
- 仿照admin的stark自定义组件的功能实现
仿照admin的stark自定义组件的功能实现:其中最主要的就是增删改查的实现 1.查:首先页面中显示表头和数据,都是动态的,而不是写死的. (1) 先看表头和表单数据:这个是查看的视图函数,但是为了 ...
随机推荐
- Qt 学习笔记 - 第五章 - Qt 时间编程 - Qt 时钟
原文地址:Qt 学习笔记 - 第五章 - Qt 时间编程 - Qt 时钟 Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始.信号与槽 Qt 学习笔记 - 第二章 - 添加图片.布 ...
- 记一次生产频繁发生FullGC问题
问题发现 早上过来,饭都没来的及吃,运维就给我发来信息,说是某个接口调用大量超时.因为最近这个接口调用量是翻倍了,所以我就去检查了下慢SQL,发现确实是有较多的慢SQL,所以我就缩减了查询的时间范 ...
- 声网AI降噪测评系统初探
作者:孟赛斯 前言 音频质量的优化是一个复杂的系统工程,而降噪是这个系统工程中的一个重要环节,传统的降噪技术经过几十年的发展已经陷入了瓶颈期,尤其是对非平稳噪声的抑制越来越不能满足新场景的需求.而近几 ...
- springboot 连接不上 redis 的三种解决方案!
针对于这种情况,首先,我们最简单直接的方法就是需要确认Redis是否已经正常启动(验证方法:如果安装在Linux下的话可以使用ps-ef|grep redis来进行确认是否开启) 如果未开启,我们可以 ...
- 【Visual Leak Detector】在 QT 中使用 VLD(方式二)
说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记. 目录 说明 1. 使用前的准备 2. 在 QT 中使用 VLD 2.1 在项目 .pro 文件中指明路径 2.2 在 main.cpp ...
- 千亿参数开源大模型 BLOOM 背后的技术
假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...
- 在Vue中发起axios请求成功,却被catch捕捉返回Network Error
前端发起请求成功,后台接收处理返回,却被axios的catch捕获,没有走then函数. 最后添加了headers配置成功解决,如上,附上axios接口配置中文文档:axios中文文档|axios中文 ...
- .NET周报 【3月第4期 2023-03-24】
国内文章 .NET应用系统的国际化-多语言翻译服务 https://www.cnblogs.com/tianqing/p/17232559.html 本文重点介绍了多语言翻译服务的设计和实现.文章描述 ...
- Spring Initailizr(项目初始化向导)
本地创建 官网创建版 在Spring官网https://start.spring.io/ 中选择 此时这个项目以压缩包形式下载到本地文件中,然后解压,导入IDEA中 阿里start创建 如果国外的网址 ...
- ThreadLocal、进程VS线程、分布式进程
1.ThreadLocal变量是一个全局变量,每个线程只能读取自己的独立副本,ThreadLocal解决了一个线程中各个函数之间的传递问题 import threading local_school ...