前言
vue框架使用起来十分的方便,因为不用过多地去关注DOM的操作,大部分只需要关注视图层以及数据的变化,但是它是怎么实现数据同步以及双向绑定的呢,以下是我简单的概述,因为我也刚入门没有多久,所以写下这篇文章加深自己对vue的理解,文章若有错误,可以随时指正。
数据同步
首先看看vue是怎么实现数据同步的:
1.创建一个vue实例
2.给el属性设置一个接管范围,也就是vue实例在这个区域才有作用
3.设置数据
4.在html中使用插值来绑定数据
5.数据变更后,同步到html中,然后渲染到界面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">{
{
message }}</div>
<!-- 引用Vue库 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
let app = new Vue({
el: "#app",// vue实例接管的区域
data: {
message: "Hello Vue!"
}
})
// 2s后数据变更
setTimeout(() => {
app.message = "bye vue!";
}, 2000);
</script>
</body>
</html>
那么按照这个思路,可以借助ES6的一个对象Proxy来模拟这个过程:
- 获取DOM,设置接管范围====>模拟el
let el = document.querySelector('#app');