合集-手写Vue全家桶

摘要:Vue响应式的原理(数据改变界面就会改变)是什么? 时时监听数据变化, 一旦数据发生变化就更新界面, 这就是Vue响应式的原理。 Vue是如何实现时时监听数据变化的 通过原生JS的defineProperty方法, 通过get和set方法来监听数据的变化。 defineProperty方法的特点 可 阅读全文
posted @ 2023-09-27 00:14 BNTang 阅读(167) 评论(0) 推荐(2) 编辑
摘要:defineProperty方法 defineProperty除了可以动态修改/新增对象的属性以外, 还可以在修改/新增的时候给该属性添加get/set方法, 从而实现数据劫持。 defineProperty get/set方法特点 只要通过defineProperty给某个属性添加了get/set 阅读全文
posted @ 2023-09-30 20:29 BNTang 阅读(64) 评论(0) 推荐(1) 编辑
摘要:Vue双向数据绑定原理-下这一篇文章主要讲解Vue双向数据绑定的原理,主要是通过Object.defineProperty()来实现的,这里我们手写Vue双向数据绑定的原理。 首先我提出一个需求,我的需求是,快速监听对象中所有属性的变化。 首先得要有一个对象,对象的定义代码如下: <script> 阅读全文
posted @ 2023-09-30 21:18 BNTang 阅读(81) 评论(0) 推荐(1) 编辑
摘要:前言 要想使用Vue必须先创建Vue的实例, 创建Vue的实例通过new来创建, 所以说明Vue是一个类, 所以我们要想使用自己的Vue, 就必须定义一个名称叫做Vue的类。 只要创建好了Vue的实例,Vue就会根据指定的区域和数据,去编译渲染这个区域,所以我们需要在自己编写的Vue实例中拿到数据和 阅读全文
posted @ 2023-10-03 10:42 BNTang 阅读(72) 评论(0) 推荐(1) 编辑
摘要:接着上一篇文章,我们已经实现了构建Vue实例的过程,接下来我们要实现的是提取元素到内存。 主要是通过文档碎片来实现,文档碎片是一个轻量级的文档,可以包含和控制节点,但是不会像真实的DOM那样占用内存,所以我们可以通过文档碎片来提高性能。 大致的思路是这样的: 创建一个空的文档碎片对象 编译循环取到每 阅读全文
posted @ 2023-10-14 18:37 BNTang 阅读(58) 评论(0) 推荐(1) 编辑
摘要:接着上一篇文章,我们已经实现了提取元素到内存的过程,接下来我们要实现的是查找指令和模板。 大致的思路是这样的: 遍历所有的节点 需要判断当前遍历到的节点是一个元素还是一个文本 如果是一个元素, 我们需要判断有没有v-model属性 如果是一个文本, 我们需要判断有没有{{}}的内容 那么随着思路的展 阅读全文
posted @ 2023-10-15 10:51 BNTang 阅读(264) 评论(0) 推荐(1) 编辑
摘要:经过上一篇的分析,完成了查找指令和模板的功能,接下来就是编译指令的数据了。 所以本章节主要处理的方法则是 buildElement 方法,我们先分析一下我们所拿到的数据在进行编码,这样会更加清晰一些。 我将 name, value 打印出来,分别对应的值是 name: v-model, value: 阅读全文
posted @ 2023-10-15 17:33 BNTang 阅读(330) 评论(0) 推荐(2) 编辑
摘要:经上一篇编译指令数据后,我们已经可以将指令数据编译成具体需要展示的数据了,上一篇只是编译了指令数据,还没有编译模板数据,这一篇我们就来编译模板数据。 也就是 {{}} 这种模板的形式我们该如何编译,其实和指令数据编译的思路是一样的,废话不多说,直接上代码。 改造一下 buildText 方法,让它支 阅读全文
posted @ 2023-10-15 18:14 BNTang 阅读(48) 评论(0) 推荐(1) 编辑
摘要:经过上一篇的介绍,已经实现了将模板编译成具体数据,接下来要介绍的是如何监听数据的变化,本章主要完成这个需求即可。 在我们文章的开始,我写了一个 Vue 双向数据绑定原理的文章当中封装了一个 Observer 类,这个类的作用就是监听数据的变化,当数据发生变化的时候,会通知订阅者,订阅者会去更新视图。 阅读全文
posted @ 2023-10-15 18:58 BNTang 阅读(63) 评论(0) 推荐(0) 编辑
摘要:经过上一篇的介绍,已经实现了监听数据的变化,接下来就是要实现数据变化后,界面也跟着变化,这就是数据驱动界面改变。 想要实现数据变化之后更新UI界面,我们可以使用发布订阅模式来实现,先定义一个观察者类, 再定义一个发布订阅类, 然后再通过发布订阅的类来管理观察者类。 接下来我们就来实现这个代码。 定义 阅读全文
posted @ 2023-10-15 22:00 BNTang 阅读(84) 评论(0) 推荐(0) 编辑
摘要:经过上一篇的介绍,已经实现了观察者模式的基本内容,接下来要完成的就是将上一篇的发布订阅模式运用到 Nue 中,实现数据驱动界面改变。 在监听数据变化的章节当中,根据指定的区域和数据去编译渲染界面 这个步骤处,我写了一个注释,这个注释是这样的:第一步:给外界传入的所有数据都添加get/set方法,第二 阅读全文
posted @ 2023-10-15 23:07 BNTang 阅读(51) 评论(0) 推荐(0) 编辑
摘要:经过上一篇的介绍,数据驱动界面改变 v-model 的双向绑定已告一段落, 剩余的就以这篇文章来完成。 首先完成我们的 v-html,v-text, 其实很简单,就是将我们之前的 v-model 创建观察者的方法,在 v-html 和 v-text 中再写一次即可,创建属于 v-html 和 v-t 阅读全文
posted @ 2023-10-19 23:55 BNTang 阅读(596) 评论(0) 推荐(1) 编辑
摘要:经过上一篇文章,已经将数据驱动界面改变的过程实现了,本章节将实现界面驱动数据更新的过程。 界面驱动数据更新的过程,主要是通过 v-model 指令实现的, 只有 v-model 指令才能实现界面驱动数据更新的过程。 好了,那么说了是通过 v-model 那么直接处理下 CompilerUtil 中的 阅读全文
posted @ 2023-10-21 00:31 BNTang 阅读(54) 评论(0) 推荐(0) 编辑
摘要:经过上一篇文章的学习,实现了界面驱动数据更新,接下来实现一下其它相关的指令,比如事件相关的指令,v-on 这个指令的使用频率还是很高的,所以我们先来实现这个指令。 v-on 的作用是什么,是不是可以给某一个元素绑定一个事件。 紧接着了解了 v-on 的作用之后,我在 example.html 的结构 阅读全文
posted @ 2023-10-21 16:42 BNTang 阅读(306) 评论(2) 推荐(1) 编辑
摘要:前言 经过上一篇文章的学习,完成了 v-on 指令的实现,接下来我们来实现将数据代理到 Vue 实例上。 为什么要完成这个功能呢?因为我们在使用 Vue 的时候,可以直接通过 this.xxx 的方式来访问 data 中的数据,这样就不用每次都去访问 data 中的数据了,这样就方便了很多。 现在在 阅读全文
posted @ 2023-10-21 20:31 BNTang 阅读(34) 评论(0) 推荐(0) 编辑
摘要:前言 经过上一篇的学习, 完成了将数据代理到了 Nue 的实例上方,这个我们已经撕完了。接下来要实现的是计算属性,计算属性的实现原理是通过 Object.defineProperty() 来实现的,我们先来看看计算属性的使用。 看之前先来改造一下我们的代码基础模板,首先是 example.html 阅读全文
posted @ 2023-10-21 22:34 BNTang 阅读(42) 评论(0) 推荐(1) 编辑

  1. 1 总会有人离开 王巨星
  2. 2 月亮 孟凡明
  3. 3 迟里乌布
  4. 4 我只能离开 颜人中
  5. 5 达尔文 蔡健雅
  6. 6 夜色滚烫 叶明净
  7. 7 你的星环 路飞文
  8. 8 不再说话 三块木头
  9. 9 黄昏 粥粥和小伙/粥粥
  10. 10 爱不单行 刘大拿
  11. 11 心动贩卖机 PIggy
  12. 12 别来无恙 苏星婕
  13. 13 我们的歌 刘大拿
  14. 14 一直很安静 王贰浪
  15. 15 去有风的地方 清音
  16. 16 雪 Distance Capper/罗言
  17. 17 坏女孩 徐良/小凌
  18. 18 乐园 沧桑Cang333/虎皮蛋/曲甲
  19. 19 Ayo(Explicit) Chris Brown/Tyga
  20. 20 我的美丽feat.海洋Bo 海洋Bo/高睿
  21. 21 世事可爱 粥粥和小伙/粥粥
  22. 22 我记得 赵雷
  23. 23 我想牵着你的手 许嵩
  24. 24 人们都不懂 刘诺然
  25. 25 寻一个你(电视剧《苍兰诀》温情主题曲) TTTTTeehom
  26. 26 子莫格尼 杉和
  27. 27 Cat Cafe Shoffy
  28. 28 风停了雨停了我们还拥抱着 Superluckyqi
  29. 29 寂寞沙洲冷 于潼
  30. 30 三国恋 王巨星
  31. 31 达尔文 林俊杰
  32. 32 有些 颜人中
  33. 33 小模样 张小只ya
  34. 34 是否 程响
  35. 35 楼顶上的小斑鸠 队长
  36. 36 笑场 薛之谦
  37. 37 还是分开 张叶蕾
  38. 38 修炼爱情 林俊杰
  39. 39 二零三 毛不易
  40. 40 雅俗共赏 许嵩
  41. 41 Serendipity 古瑞斯Graps/Zakiya晴子
  42. 42 就让这大雨全都落下·2023 刘大拿
  43. 43 老男孩 筷子兄弟
  44. 44 有何不可 许嵩
  45. 45 缓缓 杜宣达
  46. 46 好久不见 陈奕迅
  47. 47 爱的魔法(Cover 金莎) 封茗囧菌
  48. 48 在你的身边 盛哲
  49. 49 带我去找夜生活 告五人
  50. 50 假面舞会 很美味
  51. 51 STAY The Kid LAROI/Justin Bieber
  52. 52 我好想睡觉的 无敌西红柿
  53. 53 日不落(温柔版)
  54. 54 恋爱画板 锦零
  55. 55 7710 好乐无荒/尹露浠
  56. 56 给你呀(又名:for ya) 蒋小呢
  57. 57 Love Story Taylor Swift
  58. 58 Plain Jane(Remix 13z) 鱼幼微
  59. 59 晚风 7opy/BT07
  60. 60 拜托 孙晨
  61. 61 乌梅子酱 李荣浩
  62. 62 南半球与北海道 范倪Liu
  63. 63 星河万里 Rom邢锐
在你的身边 - 盛哲
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 盛哲

作曲 : 盛哲

编曲 : 盛哲

制作人 : 盛哲

和声 : 盛哲

和声编写 : 盛哲

吉他 : 盛哲

混音 : 李海

母带 : Alan Silverman @ Arf Mastering/NYC

(未经授权不得翻唱或使用)

安静地又说分开

没有依赖却是太多依赖

寂寞的广场中央

是谁的对白追赶我的空白

爱就爱了不怕没来过

恨就恨了我从没想过

是怕独念一个人太深刻

爱就爱了不怕没来过

恨就恨了我从没想过

到过的地方熟悉曾经的模样

我以为忘了想念

而面对夕阳希望你回到今天

我记得捧你的脸

在双手之间安静地看你的眼

像秋天落叶温柔整个世界

我想在你的身边

忘了这路有多长

想和你去看季节慢慢变换

又来到这座广场

听风随落叶已是最后一片

爱就爱了不怕没来过

恨就恨了我从没想过

是怕独念一个人太深刻

爱就爱了不怕没来过

恨就恨了我从没想过

到过的地方熟悉曾经的模样

我以为忘了想念

而面对夕阳希望你回到今天

我记得捧你的脸

在双手之间安静地看你的眼

像秋天落叶温柔整个世界

我想在你的身边

我想在你的身边

我想在你的身边

就让那往事随风

让它带走伤带走痛

带回那日暮的梦

花开落

云会走

铺满天

而你笑着在我的身边

我以为忘了想念

而面对夕阳希望你回到今天

我记得捧你的脸

在双手之间安静地看你的眼

像秋天落叶温柔整个世界

我想在你的身边

我想在你的身边

我想在你的身边

在你的身边

点击右上角即可分享
微信分享提示