广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >利用js实现Vue2.0中数据的双向绑定功能
  • 976
分享到

利用js实现Vue2.0中数据的双向绑定功能

2024-04-02 19:04:59 976人浏览 安东尼
摘要

Object.defineProperty了解 语法: Object.defineProperty(obj, prop, descriptor) obj 

Object.defineProperty了解

语法:

Object.defineProperty(obj, prop, descriptor)

  • obj  要定义属性的对象。
  • prop 要定义或修改的属性的名称
  • descriptor 要定义或修改的属性描述符

obj和prop很好理解 比如我们定义一个变量为


const o = {
    name:'xbhog'
}

其中obj指的就是o,prop指的就是o.name 下面我们主要看看descriptor

descriptor  目标对象属性的一些特征(是一个对象)
   descriptor  下有6个参数
 参数1:
     value:属性值
 参数2:
   writable:对象属性值是否可以被修改  true允许  false不允许
 参数3:
   configurable:对象属性是否可以被删除 true允许  false不允许
 参数4:
   enumerable:对象属性是否可被枚举
 参数5:
     get():是个函数,当访问该属性的时候,函数自动调用,函数返回值就是该属性的值
 参数6:
     set():是个函数,当修改该属性的时候,函数自动调用,函数有且只有一个参数,赋值的新值

注意:描述符里的value属性 writable属性 与 get属性 set属性是互斥的关系,只能存在一个

了解了前置知识,我们来实现Vue中的v-model的双向绑定

先看实现代码:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>通过js实现数据的双向绑定</title>
</head>
<body>
    
<input type="text"/><br>
<h1>你好:<span>更新数据</span></h1>


<!-- 通过js实现数据的双向绑定 -->
<script>
	// 方法返回文档中与指定选择器或选择器组匹配的第一个 HTMLElement对象
    var ipt =document.querySelector('input');
    var p = document.querySelector('span');
	
	
    var data = {name:""};
	
    ipt.oninput = function(){
	// 将ipt.value中的值传给data.name的value
        data.name = ipt.value;
    }
    //劫持ipt.value
    Object.defineProperty(data,"name",{
    // 数据订阅
    get(){
        return ipt.value;  //当访问的时候会调用get方法
    },
    // 数据劫持
	//name:value
    set(value) {
        p.innerHTML = value;
        ipt.value = value;
    }   
})
</script>
</body>
</html>

首先我们通过document.querySelector获取input以及span标签的Html对象,在定义一个data对象,属性name先为空。

使用事件监听oninput来监听用户输入(该事件在 <input> 或 <textarea> 元素的值发生改变时触发)。

将ipt.value中的值传给data.name的value;


data.name = ipt.value;

利用Object.defineProperty劫持用户输入的数据。

  • get 属性:是个函数,当访问该属性的时候,函数自动调用,函数返回值就是该属性的值
  • set 属性:是个函数,当修改该属性的时候,函数自动调用,函数有且只有一个参数,赋值的新值

Object.defineProperty(data,"name",{
    // 数据订阅
    get(){
       return ipt.value;  //当访问data.name时候会调用get方法,调用ipt.value获取当前value的值
    },
    // 数据劫持
    set(value) {   //设置数据的时候会自动调用set方法
        p.innerHTML = value;
        ipt.value = value;
    }

看效果比较明显:

set方法:

get方法:

最后实现效果:

参考资料:

  • https://blog.csdn.net/Doulvme/article/details/107978012
  • Https://developer.mozilla.org/zh-CN/docs/WEB/api/Document/querySelector
  • https://www.jianshu.com/p/6f589af16ad4
  • //www.jb51.net/article/217657.htm (推荐)

总结

到此这篇关于利用js实现Vue2.0中数据双向绑定功能的文章就介绍到这了,更多相关js实现Vue2双向绑定内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 利用js实现Vue2.0中数据的双向绑定功能

本文链接: https://www.lsjlt.com/news/130708.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用js实现Vue2.0中数据的双向绑定功能
    Object.defineProperty了解 语法: Object.defineProperty(obj, prop, descriptor) obj  ...
    99+
    2022-11-12
  • 如何利用js实现Vue2.0中数据的双向绑定功能
    本篇内容主要讲解“如何利用js实现Vue2.0中数据的双向绑定功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用js实现Vue2.0中数据的双向绑定功能”吧!Object.defineP...
    99+
    2023-06-20
  • 如何用js实现Vue2.0中数据的双向绑定功能
    这篇文章主要介绍了如何用js实现Vue2.0中数据的双向绑定功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用js实现Vue2.0中数据的双向绑定功能文章都会有所收获,下...
    99+
    2022-10-19
  • Vue2.0中怎么实现数据的双向绑定
    这篇文章给大家介绍Vue2.0中怎么实现数据的双向绑定,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现组件双向数据绑定在上一节中最后的示例使用的是Vue 1.0版本中的 .sync ...
    99+
    2022-10-19
  • Vue2.0/3.0双向数据绑定的实现原理详解
    Vue2.0/3.0 双向数据绑定的实现原理 双向数据绑定简意 即数据的改变能让页面重新渲染 Vue2.0 ES5的原理: Object.defineProperty 对数据进行拦...
    99+
    2022-11-12
  • Vue2.0/3.0双向数据绑定的实现原理是什么
    这篇文章给大家分享的是有关Vue2.0/3.0双向数据绑定的实现原理是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框...
    99+
    2023-06-14
  • 纯JS如何实现vue.js下的双向绑定功能
    目录首先说一下实现双向绑定的思路:再说一下实现这些功能的js主要的方法有哪些:最后需要创建哪些工具类?实现vue双向绑定看下面截图 这是一个普通的html文件,也并没有引入vue....
    99+
    2022-11-12
  • 如何实现JS原生数据双向绑定
    这篇文章主要介绍如何实现JS原生数据双向绑定,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:<span  deep="7">...
    99+
    2022-10-19
  • js实现数据双向绑定(访问器监听)
    本文实例为大家分享了js实现数据双向绑定的具体代码,供大家参考,具体内容如下 双向绑定: 双向绑定基于MVVM模型:model-view-viewModel model: 模型层,负...
    99+
    2022-11-12
  • js项目中双向数据绑定的简单实现方法
    目录前言发布订阅者模式结果调用总结前言 双向数据绑定 指的是当对象的属性发生变化时能够同时改变对应的UI,反之亦然。换句话说,如果我们有一个user对象,这个对象有一个name属性...
    99+
    2022-11-12
  • 使用Vue.js实现数据的双向绑定
    目录如何用Vue.js实现数据的双向绑定?1. 理解双向绑定2. 使用v-model指令3. 使用自定义组件实现双向绑定4. 数据劫持5. 模板引擎6.Object.definePr...
    99+
    2023-05-16
    Vue.js数据的双向绑定 Vue.js双向绑定
  • Vue中怎么实现数据双向绑定
    这篇文章主要介绍了Vue中怎么实现数据双向绑定的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中怎么实现数据双向绑定文章都会有所收获,下面我们一起来看看吧。在我们使用vue的时候,当数据发生了改变,界面也会...
    99+
    2023-07-04
  • Vue 中怎么实现数据双向绑定
    本篇文章给大家分享的是有关 Vue 中怎么实现数据双向绑定,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MVVM 架构的优点低耦合。视图(Vi...
    99+
    2022-10-19
  • vue中双向数据绑定怎么实现
    vue中双向数据绑定是通过数据劫持结合发布订阅模式的方式来实现的,其核心方法是Object.defineProperty()方法。实现双向数据绑定的示例:<!DOCTYPE html><html><h...
    99+
    2022-10-11
  • Vue数据的双向绑定如何实现
    本篇内容介绍了“Vue数据的双向绑定如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现组件双向数据绑定我们先来看看抛弃 .sync ...
    99+
    2023-07-04
  • proxy怎么实现数据的双向绑定
    本篇内容介绍了“proxy怎么实现数据的双向绑定”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!写在前面随着 vue3.x 的消息越来越多,p...
    99+
    2023-06-03
  • 怎么在vue中实现数据双向绑定
    怎么在vue中实现数据双向绑定?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的...
    99+
    2023-06-14
  • 聊聊Vue中如何实现数据双向绑定
    在我们使用vue的时候,当数据发生了改变,界面也会跟着更新,但这并不是理所当然的,我们修改数据的时候vue是如何监听数据的改变以及当数据发生改变的时候vue如何让界面刷新的?当我们修改数据的时候vue是通过es5中的Object.defin...
    99+
    2022-11-24
    Vue vue.js
  • vue.js如何使用defineProperty实现数据的双向绑定
    这篇文章主要介绍了vue.js如何使用defineProperty实现数据的双向绑定,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue.j...
    99+
    2022-10-19
  • 详解用Vue怎么实现数据的双向绑定
    在Vue.js中,双向数据绑定是一项非常强大的功能,它能够使数据和视图之间保持同步,让开发者更加方便地操作数据。在本文中,我们将介绍如何用Vue.js实现数据的双向绑定。1. 理解双向绑定首先,我们需要了解双向绑定的原理。在Vue.js中...
    99+
    2023-05-14
    Vue.js
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作