vue组件自定义v-model

转载自  vue组件,自定义v-model方法

1
<my-component v-model="obj"></my-component>

 

在使用my-component组件时,为了实现双向绑定。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Vue.component('my-component', {
    props: {
        obj: Object,
    },
    model: {
        prop: 'obj',
        event: 'change'
    },
    methods: {
        onchange: function() {
            this.$emit('change'this.obj);
        }
    }
});

  

上面代码中

1.props对象中,需要定义一个能够从外部传入的变量,这里我定义了一个obj。这样就可以用下面这行代码进行传递值

1
<my-component :obj="obj对象"></my-component>

  

2.为了能够使用v-model语法糖,我们定义了model对象。model对象包含两个属性,一个是prop,一个是event。prop默认是value,event默认是input,我们这里写model是为了改变默认的东西,使用我们自己定义的变量。写好之后就可以用下面这行代码了。

1
<my-component v-model="obj对象"></my-component>

  

3.虽然可以这么用,但还是不能从子组件传递数据到外部。因为change事件并没有被触发。这个change事件是我自定义的,所以这里需要写一个方法onchange。方法名是次要的,主要的是里面的那行代码。

1
this.$emit('change', this.obj);

  

这行两个参数,第一个是事件名,和model里的event属性的值要一样。第二个参数是改变的值。写第二个变量,才能改变外部的数据,实现双向绑定的功能。

 

文笔不行,没办法表达出清晰的思路,贴上早上翻阅的一些有用的链接,以供参考。

 

参考:

https://jsfiddle.net/yyx990803/58kxs8tj/ 

https://github.com/vuejs/vue/issues/4373

http://lizhihua.me/2016/10/31/vue/component_v-model/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

权限管理系统

11 已经有现成的spring Security 和 Apache shiro 为什么还要开发自己的一套权限管理系统 1.必须按照框架的要求进行配置&#xff0c;会被框架限制&#xff0c;差一点点就转不起来&#xff0c;犯一点点错误都不行&#xff0c; 2.没有界面操作&#xff0c;和查看&#xf…

vue watch监听对象

一、watch的API vm.$watch( expOrFn, callback, [options] ) 参数&#xff1a; {string | Function} expOrFn{Function | Object} callback{Object} [options] {boolean} deep{boolean} immediate 返回值&#xff1a;{Function} unwatch 用法&#xff1a; 观察 Vue 实例变化的…

从.NET和Java之争谈IT这个行业

一、有些事情难以回头 开篇我得表名自己的立场:.NET JAVA同时使用者,但更加偏爱.NET.原因很简单 1.NET语言更具开放性,从开源协议和规范可以看出; 2.语言更具优势严谨; 3.开发工具VS更具生产力; 然而 1.Java,C#的职位比率在4:1,虽然这不是什么问题,因为求职竞争的比例更大(JAVA…

权限管理系统2_权限表,权限模块表

CREATE TABLE sys_acl_module ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 权限模块id, name varchar(20) NOT NULL DEFAULT COMMENT 权限模块名称, parent_id int(11) NOT NULL DEFAULT 0 COMMENT 上级权限模块id, level varchar(200) NOT NULL DEFAULT COMMENT …

struts基本概念(2)

一、struts使用步骤&#xff1a;1.导包&#xff08;基本&#xff09;2.web.xml配置struts控制器 C3.页面开发 V4.处理类开发 M()5.配置struts.xml 6.部署运行二、struts访问session(servlet )1.解耦方式:ActionContext Map 2.耦合方式:ServletActionContextHttpSession 三…

vue2.0 $router和$route的区别

转载自 vue2.0 $router和$route的区别在vue2.0里页面参数是 this.$route.query或者 this.$route.params 接收router-link传的参数。 在路由跳转的时候除了用router-link标签以外需要在script标签在事件里面跳转&#xff0c;所以有个方法就是在script标签里面写this.$router.pu…

基于Bootstrap 3.x的免费高级管理控制面板主题:AdminLTE

AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题。AdminLTE - 是一个完全响应式管理模板。基于Bootstrap3框架。高度可定制的&#xff0c;易于使用。适合从小型移动设备到大型台式机很多的屏幕分辨率。 在线预览: http://almsaeedstudio.com/preview/ AdminLTE 在…

Spring MVC开发环境搭建

现在springMVC是非常常用的框架&#xff0c;很多公司的内部都是使用这个框架 打开maven查询jar包的网址 mvnrepository.com 测试是否成功 war:只是运行 war expord: 运行且调试

Redola.Rpc 的一个小目标:20000 tps

Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标&#xff1a;20000 tps。 Concurrency level: 8 threadsComplete requests: 20000 Time taken for tests: 0.886 secondsTime per request: 0.044 ms (avg)Requests per second: 22573 [#/sec] (avg) Concurrency level: 8 thr…

vue 动态修改路由参数

转载自 vue 动态修改路由参数 import merge from webpack-merge&#xff1b;修改原有参数 this.$router.push({query:merge(this.$route.query,{maxPrice:630}) })新增一个参数&#xff1a; this.$router.push({query:merge(this.$route.query,{addParams:我是新增的一…

2016年寒假心得

对于上学的孩子来说每年都有寒假&#xff0c;可是一样的寒假总是不一样的玩法。自从高中毕业之后&#xff0c;很少动笔写文了&#xff0c;这次就好好的写一下吧&#xff01;咱的文笔也不是很好&#xff0c;就写个最简单的流水状大家凑合的看看吧&#xff01;&#xff01;&#…

Vue.js 定义组件模板的七种方式

转载自 Vue.js 定义组件模板的七种方式在 Vue 中定义一个组件模板&#xff0c;至少有七种不同的方式&#xff08;或许还有其它我不知道的方式&#xff09;&#xff1a; 字符串模板字面量x-template内联模板render 函数JSF单文件组件 在这篇文章中&#xff0c;我将通过示例介绍…

.Net Core上用于代替System.Drawing的类库

目前.Net Core上没有System.Drawing这个类库&#xff0c;想要在.Net Core上处理图片得另辟蹊径。 微软给出了将来取代System.Drawing的方案&#xff0c;偏向于使用一个单独的服务端进行各种图片处理https://github.com/dotnet/corefx/issues/2020https://github.com/imazen/Gra…

16-1 Redis分布式缓存引入与保存缓存功能实现

16-1 Redis分布式缓存引入与保存缓存功能实现 现在功能已经完成了&#xff0c;但是我们还是要考虑一下性能问题&#xff0c;现在任何请求都是要到数据库中查询很多的数据&#xff0c;才能知道当前的用户是否有权限可以访问当前的url&#xff0c;当我们的请求量很大时&#xff…

oracle基本笔记整理

oracle&#xff0c;简单来说就是数据库&#xff0c;数据库 &#xff0c;顾名思义&#xff0c;就是存放数据的容器&#xff01;&#xff01; 不知道oracle的我先科普一下吧~~~科普&#xff0c;科学普及简称科普&#xff0c;又称大众科学或者普及科学&#xff0c;是指利用各种传…

不同范数下的余弦定理_第06题 | 从源头追溯「余弦定理」amp; 文理科知识点的异同...

文、理科数学大部分知识点、甚至相关知识点的考查形式都是共同的&#xff0c;甚至往年理科题目过几年就会出现在文科试卷上&#xff0c;反之亦然&#xff1b;「射影定理」是「余弦定理」的直接来源&#xff0c;所以不算超纲知识点。先发福利&#xff1a;这里有6场「高考数学」系…

ASP.NET CORE 项目实战 ---图形验证码的实现

简介   很长时间没有来更新博客了&#xff0c;一是&#xff0c;最近有些忙&#xff0c;二是&#xff0c;Core也是一直在摸索中&#xff0c;其实已经完成了一个框架了&#xff0c;并且正在准备在生产环境中试用&#xff0c;但是很多东西也是出于自己理解的肤浅和技术的不断更新…

vue.js 接收url参数

转载自 vue.js 接收url参数1) 路由配置传参方式在配置路由时 例如 "/firewall/authorize/:uid/:uname/:token"页面url为 http://XXX.com/firewall/authorize/23/zhangman/232454 js 接收方式 this.$route.params.uid,2) ?传参方式例 http://XXX.com/firewall/auth…

在IDEA中将SpringBoot项目打包成jar包的方法 不要用 在上面有可以用的

在IDEA中将SpringBoot项目打包成jar包的方法 2018年03月07日 10:43:52 叶叶叶叶大爷 阅读数 71375 版权声明&#xff1a; https://blog.csdn.net/qq_37105358/article/details/79467401 SpringBoot项目无需依赖tomcat容器(内含)就可以发布,现在将打包步骤记录一下: 1. 打包前…