用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 相关文章推荐
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
TensorFlow入门使用 tf.train.Saver()保存模型
Apr 24 Python
TensorFlow实现Logistic回归
Sep 07 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
django框架创建应用操作示例
Sep 26 Python
解决Python使用列表副本的问题
Dec 19 Python
python topk()函数求最大和最小值实例
Apr 02 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
Apr 22 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
Python中过滤字符串列表的方法
Dec 22 Python
python中Mako库实例用法
Dec 31 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
?繁体转换的class
2006/10/09 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
JavaScript实现简单的计算器
2020/01/16 Javascript
django model去掉unique_together报错的解决方案
2016/10/18 Python
python数据封装json格式数据
2018/03/04 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
Python是怎样处理json模块的
2020/07/16 Python
零基础学python应该从哪里入手
2020/08/11 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
QA工程师岗位职责
2013/11/20 职场文书
网络宣传方案
2014/03/15 职场文书
投标担保书范文
2014/04/02 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
windows server2008 开启端口的实现方法
2022/06/25 Servers