自定义组件模拟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) 先看表头和表单数据:这个是查看的视图函数,但是为了 ...
随机推荐
- 深入理解Go语言中的sync.Cond
1. 简介 本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法.实现原理.使用注意事项以及常见的使用使用场景.能够更好地理解和应用 Cond 来实现 go ...
- 接入HMS Core应用内支付服务过程中一些常见问题总结
华为HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档. 往期文章:常 ...
- Java语言标识符的命名规范(超详细讲解)
前言 在上一篇文章中,壹哥带领大家开始编写了第一个 Java 案例,在我们的 cmd 命令窗口中输出了"Hello World"这句话.并且我还给大家留了一个小作业,你做出来了吗? ...
- 三分钟速览GPT系列原理
其中,Transformer和BERT来自Google,GPT系列[GPT.GPT-1.GPT-2.GPT-3.ChatGPT.GPT-4]来自OpenAI. GPT Paper名为Improving ...
- 两条命令搞定 ChatGPT API 的调用问题
自2022年11月30日 OpenAI 发布 ChatGPT 以来,虽然时有唱衰的声音出现,但在OpenAI不断推陈出新,陆续发布了OpenAPI.GPT-4.ChatGPT Plugins之后,似乎 ...
- ACM-学习记录-素数筛
前言 近期发现我NEFU低年级组校赛题目只有模拟+数论,恰恰都是我最不会做的,数论方面反反复复用到的就是素数筛,特在此记录一下,闲来无事自己翻阅当作复习复习,以免被到时候一道题都做不出来菜到巨佬们. ...
- 搭建私有YUM仓库_及_内网镜像站
搭建私有YUM仓库_及_内网镜像站 搭建私有YUM仓库(自己定制的rpm包)私有yum仓库环境系统版本:centos7.4 IP:192.168.1.47 #最好能上公网 私有yum仓库服务端配置 第 ...
- elasticsearch 官方优化建议
1.一般建议 a.不要返回过大的结果集.这个建议对一般数据库都是适用的,如果要获取大量结果,可以使用search_after api,或者scroll (新版本中已经不推荐). b.避免大的文 ...
- this关键字,static以及子类访问父类super关键字
1.this是用来指代当前类实例化对象 public setid(id){thiis.id = id;} 即将传入的形参id赋值给当前类的id属性 2.this还可以调用方法,方法分为两种构造方法和普 ...
- Luogu P4114 Qtree1
树剖一好题.我心水了ww 题目描述 给定一棵n个节点的树,有两个操作: CHANGE i ti 把第i条边的边权变成ti QUERY a b 输出从a到b的路径中最大的边权,当a=b的时候,输出0 输 ...