我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • html

  • css

  • javascript

  • vue

    • Vue
    • vue3基本类型ref初始化
    • vue3中尖括号和冒号的使用细则
    • vue3中为什么使用const不使用let
      • 在 Vue 3 中,ref 是一个用于创建响应式引用的 API,而 const 用于声明变量。使用 const 关键字声明 ref 是一种惯例,确保你创建的响应式引用在赋值后不会被重新绑定。这里是为什么在 Vue 3 中你通常会看到 const 和 ref 一起使用的原因:
        • 1. `ref` 创建响应式引用
        • 2. `const` 用于声明变量
        • 3. 为什么用 `const`
        • 示例
        • 总结
      • 在 JavaScript 和 TypeScript 中,const 用于声明常量,但它仅阻止对变量的重新赋值,而不阻止对变量内容的修改。下面详细解释为什么 const 不会阻止内部 value 的修改:
        • 1. `const` 的作用
        • 2. `const` 和对象/数组
        • 3. `ref` 的工作机制
        • 总结
    • vue3中watch和compute是
    • route-view的作用
    • 关于import使用问题
    • 顶层await的理解
    • js中的常见的异步操作
    • vue中use理解
    • vue中config使用
    • vue中的env环境使用
    • 在html中直接使用vue
    • vue3中setup
    • vue3中ref和reactive的区别
    • vue3中watch
    • vue3中vite-config
    • vue3中组件的props类型
    • vite创建项目
    • vite使用tailwindcss
  • 小程序

  • Es6

  • 前端
  • vue
窝窝侠
2024-08-23

vue3中为什么使用const不使用let

# 在 Vue 3 中,ref 是一个用于创建响应式引用的 API,而 const 用于声明变量。使用 const 关键字声明 ref 是一种惯例,确保你创建的响应式引用在赋值后不会被重新绑定。这里是为什么在 Vue 3 中你通常会看到 const 和 ref 一起使用的原因:

# 1. ref 创建响应式引用

ref 是 Vue 3 中的一个函数,用于创建一个响应式的引用。它返回一个包含 .value 属性的对象,这个属性可以用来存储实际的值。通过 ref 创建的对象是响应式的,这意味着当 .value 的值发生变化时,Vue 会自动更新依赖于这个值的视图。

import { ref } from 'vue';

const count = ref(0); // 创建一个响应式的引用
1
2
3

# 2. const 用于声明变量

const 是 JavaScript 的关键字,用于声明一个常量。这意味着你声明的变量的引用不能被重新赋值。然而,const 不会阻止变量内部的对象或数组的内容被修改,只是阻止了变量引用本身的重新赋值。

const count = ref(0);
count.value = 1; // 合法,修改了 .value 的内容
// count = ref(2); // 错误: Cannot assign to 'count' because it is a constant
1
2
3

# 3. 为什么用 const

  1. 确保引用不被重新赋值:

    使用 const 声明 ref 确保变量 count 的引用不会被重新赋值。虽然 .value 可以被修改,但 count 变量本身(即 ref 的引用)不能被重新绑定到其他值。这有助于避免意外的重新赋值错误,使代码更安全和易于维护。

    const count = ref(0);
    count.value = 1; // 合法
    // count = ref(2); // 错误: 不能重新赋值
    
    1
    2
    3
  2. 代码清晰性:

    使用 const 明确表示这个变量的引用是固定的,并且你不打算在其他地方改变这个引用。这可以提高代码的可读性和理解性,让其他开发者(或你自己)清楚这个变量不会被重新赋值。

  3. 防止意外更改:

    使用 const 可以防止变量在代码的其他部分被重新赋值,从而避免潜在的错误。例如,你可能在组件的多个地方使用 ref 创建的响应式数据,确保这些数据在其他地方不会被重新赋值是很重要的。

# 示例

import { ref } from 'vue';

const count = ref(0); // 创建一个响应式引用
const name = ref('Alice'); // 另一个响应式引用

// 更新响应式数据的值
count.value = 10; 
name.value = 'Bob';

// 不允许重新绑定 count 或 name
// count = ref(5); // 错误
// name = ref('Charlie'); // 错误
1
2
3
4
5
6
7
8
9
10
11
12

# 总结

在 Vue 3 中,ref 用于创建响应式的数据引用,而 const 用于声明变量并确保变量的引用不会被重新赋值。const 和 ref 一起使用的主要原因是:

  • 确保引用的稳定性: const 确保了 ref 的引用不会被重新赋值,使代码更稳定和安全。
  • 提高代码清晰性: 明确标识变量不会被重新赋值,有助于代码的可维护性。

因此,使用 const 是一个最佳实践,它确保你创建的 ref 在生命周期内保持一致。

# 在 JavaScript 和 TypeScript 中,const 用于声明常量,但它仅阻止对变量的重新赋值,而不阻止对变量内容的修改。下面详细解释为什么 const 不会阻止内部 value 的修改:

# 1. const 的作用

const 是用来声明常量的关键字。它的主要作用是确保变量的引用在声明后不会被重新赋值。换句话说,const 变量必须在声明时被初始化,并且不能在后续代码中被重新赋值。

# 示例

const x = 10;
x = 20; // 错误: Cannot assign to 'x' because it is a constant
1
2

# 2. const 和对象/数组

虽然 const 阻止了对变量的重新赋值,但它并不影响对象或数组的内部结构的修改。这是因为 const 声明的是对对象的引用,而不是对对象内容的保护。对象的属性或数组的元素可以被修改。

# 示例

const obj = { name: 'Alice', age: 30 };
obj.name = 'Bob'; // 合法: 修改对象的属性
obj.age = 31; // 合法: 修改对象的属性

// obj = { name: 'Charlie', age: 25 }; // 错误: Cannot assign to 'obj' because it is a constant

const arr = [1, 2, 3];
arr.push(4); // 合法: 修改数组的内容
arr[0] = 10; // 合法: 修改数组的元素

// arr = [5, 6, 7]; // 错误: Cannot assign to 'arr' because it is a constant
1
2
3
4
5
6
7
8
9
10
11

# 3. ref 的工作机制

在 Vue 3 中,ref 函数用于创建一个响应式的数据引用。ref 返回一个对象,这个对象包含一个 value 属性,该属性存储实际的数据值。尽管 ref 对象的引用是常量(当使用 const 声明时),value 属性的值仍然可以被修改。

# 示例

import { ref } from 'vue';

const count = ref(0);
count.value = 10; // 合法: 修改 ref 对象的 value 属性

// count = ref(5); // 错误: Cannot assign to 'count' because it is a constant
1
2
3
4
5
6

# 总结

  • const: 确保变量的引用不能被重新赋值。它防止了对变量本身的重新绑定,但不阻止对变量内容的修改。如果变量是一个对象或数组,const 只保证了对象或数组的引用不变,而对象或数组的属性或元素可以修改。

  • ref: 创建一个包含 .value 属性的响应式对象。使用 const 声明 ref 的变量保证了这个 ref 对象的引用不变,但 .value 属性的值仍然可以被修改,因为 const 只限制了引用的重新赋值,不限制属性的修改。

这种设计使得 const 可以提供对变量引用的不变性,同时允许对对象或数组的内部数据进行修改。

在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
vue3中尖括号和冒号的使用细则
vue3中watch和compute是

← vue3中尖括号和冒号的使用细则 vue3中watch和compute是→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×