问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue双向绑定为什么都是字符串类型

发布网友 发布时间:2022-04-22 09:15

我来回答

1个回答

热心网友 时间:2022-05-14 20:06

vue将数据绑定到组件的原理如下:
1、当实例化一个Vue构造函数,会执行 Vue 的 init 方法,在 init 方法中主要执行三部分内容,一是初始化环境变量,而是处理 Vue 组件数据,三是解析挂载组件。以上三部分内容构成了 Vue 的整个执行过程。
2、Vue 实现了一个 观察者-消费者(订阅者) 模式来实现数据驱动视图。通过设定对象属性的 setter/getter 方法来监听数据的变化,而每个属性的 setter 方法就是一个观察者, 当属性变化将会向订阅者发送消息,从而驱动视图更新。
3、Vue 的订阅者 watcher 实现在 /src/watchr.js 。构建一个 watcher 最重要的是 expOrFn 和 cb 两个参数,cb 是订阅者收到消息后需要执行的回调,一般来说这个回调都是视图指令的更新方法,从而达到视图的更新,但是这也不是必须的,订阅回调也可以是一个和任何无关的纯函数。一个订阅者最重要的是要知道自己订阅了什么,watcher 分析 expOrFn 的 getter 方法,从而间接获得订阅的对象属性。
4、Vue 双向数据绑定实现
数据与视图的绑定与同步,最终体现在对数据的读写处理过程中,也就是 Object.defineProperty() 定义的数据 set、get 函数中。Vue 中对于的函数为 defineReactive,在精简版实现中,我只保留了一些基本特性:
function defineReactive(obj, key, value) { var dep = new Dep() Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter() { if (Dep.target) { dep.depend() } return value }, set: function reactiveSetter(newVal) { if (value === newVal) { return } else { value = newVal dep.notify() } } })}
在对数据进行读取时,如果当前有 Watcher(对数据的观察者吧,watcher 会负责将获取的新数据发送给视图),那将该 Watcher 绑定到当前的数据上(dep.depend(),dep 关联当前数据和所有的 watcher 的依赖关系),是一个检查并记录依赖的过程。而在对数据进行赋值时,如果数据发生改变,则通知所有的 watcher(借助 dep.notify())。这样,即便是我们手动改变了数据,框架也能够自动将数据同步到视图。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 如何限制编辑框中的准许字符以及修改输入的字符 vue.js字符串换行问题 用vuejs怎么给提交按钮添加监听事件改变文字内容以... vue切换input的type类型,为什么输入框中的内容也... vue怎么将一个数组中的一项字符串转换为数组,在哪... vue 如何把input框里输出的内容添加到空字符串里 Word怎么同时设置多张照片的大小 vue怎么修改application/x-www-form-urlencoded 请教在vue中如何转换这个数据,困扰一天了? 如何在word文档中同时调整图片大小 vue.js 如何实现删除输入不需要的字符 网页采用VUE,求怎样修改输入框的值 别人发的qq接龙怎么往下接 qq有办法自动参与群接龙吗? qq里的群接龙能修改编辑文字吗? qq有接龙 我要接龙要怎么操作 QQ里怎么按设定顺序接龙? qq里接龙在哪里 为什么QQ接龙点一半就卡住了 qq怎样可以把照片接龙 vue数组变成字符串的问题 vue 如何在input text标签上面回显数据 vue中符号的写法问题 每次开机都提示APO3GUI停止工作窗口怎么解决? 我终于战胜了困难(挫折)600字叙事作文 基因APOE3 3型风险型,怎么办? 晓之排名 APO和ED有什么异同? 电脑返回键是哪个 世界上最小的坦克 光学透镜APO是什么意思? 漆黑的魅影沙暴队缺两个PM,目前班吉拉,钢螳螂,... 电脑怎么返回 星之卡比镜之迷宫打鼹鼠图攻略 以前小时候有部日本的动画片,主角们是鼹鼠,是日... 辐射4巨墙上的洞任务怎么做 诞辰之始鱼石螈怎么创造 鱼石螈无法创造攻略 电脑返回键快捷方式 大熊和鼹鼠是什么电影? 暴走大事件有鼹鼠的哪集