2024-03-23
vue
00

Vue 2和Vue 3都是流行的前端JavaScript框架,它们的核心之一是响应式系统。在这里,我将为您详细分析Vue 2和Vue 3的响应式原理,并附上相应的代码注释。

Vue 2的响应式原理 在Vue 2中,响应式原理主要基于Object.defineProperty实现的。当你在Vue实例中声明一个数据属性时,Vue会使用Object.defineProperty来把这个属性转化为getter和setter,并重写这个属性的访问和修改。

代码演示

javascript
// 假设有一个Vue 2实例 const vm = new Vue({ data: { message: 'Hello, Vue!' } }); // 我们可以通过vm.message来访问message属性 // 当访问message属性时,会触发getter console.log(vm.message); // 触发getter,输出 'Hello, Vue!' // 当修改message属性时,会触发setter vm.message = 'Hello, Vue 2!'; // 触发setter
2024-03-23
vue
00

在 Vue 中,computed 和 watch 都是用于处理数据变化的工具,但它们在用法和作用上有一些区别。

computed:

属性:computed 是一个计算属性,它的值会被缓存,有依赖的响应式数据发生变化时才会重新计算。 用途:用于基于响应式数据算而来的衍生数据,比如对原始数据进行筛选、排序等操作,或者进行一些复杂的计算。 语法:在 Vue 组件中通过 computed 对象定义算属性,可以在模板中以属性的形式直接使用。 示例:

javascript
computed: { fullName() { return this.firstName + ' ' + this.lastName; } }
2024-03-23
vue
00

在 Vue 中,"diff" 指的是 Virtual DOM 的差异比较算法,用于比较前后两次 Virtual DOM 树的差异,找出最小的变更,然后将这些变更应用到实际的 DOM 上,以实现高效的 DOM 更新。这种算法主要应用于前端框架中,以提高页面渲染的性能。

"diff" 算法的优点包括:

减少实际 DOM 操作: 通过找出最小的变更并将这些变更应用到实际的 DOM 上,减少了不必要的 DOM 操作,从而提高了页面渲染的性能。 . 最小化重排和重绘: 通过最小化对实际 DOM 的操作,"diff" 算法可以减少页面的重排(Reflow)和重绘(Repaint),从而提高页面的性能和用户体验。

2024-03-23
vue
00

Vue 2 和 Vue 3 中的数据双向绑定原理有所不同。让我先为您解析 Vue 2 中的数据双向绑定原理,然后再分析 Vue 3 中的情况。

Vue 2 中的数据双向绑定原理

在 Vue 2 中,数据双向绑定是通过使用 Object.defineProperty 配合发布-订阅模式实现的。

  1. 数据劫持:Vue 在初始化时会对 data 中的属性进行递归遍历,对每个属性都通过 Object.defineProperty 方法进行劫持,监听属性的 getter 和 setter。当访问属性时,会触发 getter,并将该属性添加到当前订阅者的依赖列表中;当属性被修改时,会触发 setter,并通知所有订阅者进行更新。
2024-03-21
nginx
00

服务器安装必要包管理工具(yum)

根据:https://blog.csdn.net/qq_46162321/article/details/115006096

步骤一:备份

  1. 进入/etc/yum.repos.d 查看目录下文件
ll
  1. 将所有文件备份到新建目录repo_bak下
# mkdir repo_bak # mv *.repo repo_bak/ # mv *.repo.bak repo_bak/ # ll

步骤二:下载阿里的CentOS-Base.repo 到/etc/yum.repos.d/

  1. 下载文件
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 查看安装情况 # ll
  1. 运行yum clean all 清除缓存,运行 yum makecache 生成新的缓存