用vue.js组件模拟v-model指令实例方法


Posted in Python onJuly 05, 2019

1、问题描述

在使用v-model指令实现输入框数据双向绑定,输入值时对应的这个变量的值也随着变化;但是这里不允许使用v-model,需要写一个组件实现v-model指令效果

<div id="user">
  <input type="text" v-model="username">
  <label>{{username}}</label>
</div>
 
<script>
  let v = new Vue({
    el:'#user',
    data:{
     username:'zhangsan'
    }
  })
</script>

2、实现源码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue模拟v-model指令</title>
		<script src="../js/vue.js"></script>
	</head>
	<body>
		<div id="datas">
			<input-model :value="num" @inputchange="num=arguments[0]"></input-model>
			<br>
			<span>
				{{num}}
			</span>
		</div>
		<script>
			Vue.component('input-model',{
				template:`<input type="text" :svalue="cvalue" @input="updateInput">`,
				computed: {
					cvalue() {
						return this.svalue 
					}
				},
				props:['svalue'],
				methods: {
					updateInput: function(event){
						let values = event.target.value
						this.$emit('inputchange',values)
					}
				}
			});
			
			let v = new Vue({
				el:'#datas',
				data: {
					num:'1'
				}
			})
		</script>
	</body>
</html>

3、注意事项

(1)父组件中使用子组件,绑定的inputchange必须小写,不能使用inputChange;

(2)子组件中的cvalue和计算属性中的要保持一致;

(3)子组件中的@input和父组件中的@inputchange没有必然关系;

(4)this.$emit('inputchange',values)中的inputchange要和DOM元素中的input-model一致

(5)父组件将num值通过props属性传到子组件中;子组件通过$emit触发当前实例上的事件,将改变的值传给父组件

内容扩展:

vue.js指令v-model实现方法

V-MODEL 是VUE 的一个指令,在input 控件上使用时,可以实现双向绑定。

通过看文档,发现他不过是一个语法糖。

实际是通过下面的代码来实现的:

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script type="text/javascript" src="vue/vue.js"></script>
</head>
<body>
 <div id="app-6">
 <input :value="person.name" @input="person.name = $event.target.value">
 <input :value="person.age" @input="person.age =$event.target.value">
 {{person}}
 </div>
 <script type="text/javascript">
 var app =new Vue({
 el: '#app-6',
 data:{
 person:{name:"ray",age:19}
 }
 })
 </script>
</body>
</html>
Python 相关文章推荐
浅析Python中的join()方法的使用
May 19 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 Python
python实现远程控制电脑
May 23 Python
python 字符串追加实例
Jul 20 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
python多线程实现TCP服务端
Sep 03 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 #Python
Python 计算任意两向量之间的夹角方法
Jul 05 #Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 #Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 #Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 #Python
python读出当前时间精度到秒的代码
Jul 05 #Python
python读写csv文件方法详细总结
Jul 05 #Python
You might like
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
JavaScript 大数据相加的问题
2011/08/03 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
关于python中导入文件到list的问题
2020/10/31 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
生态养殖创业计划书
2014/05/06 职场文书
人事文员岗位职责
2015/02/04 职场文书
博士导师推荐信
2015/03/25 职场文书
酒桌上的开场白
2015/06/01 职场文书
二婚主持词
2015/06/30 职场文书
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers