10月31日
1. 查询参数(query params) 和 路径参数(path params)
- 定义与写法对比
| 类型 | 定义 | 写法示例 | URL 示例 |
|---|---|---|---|
| 查询参数(Query Params) | 追加在 URL 末尾,? 开头,用 & 分隔。 | /createOrder?hospital_id=1&hospital_name=协和医院 | /createOrder?hospital_id=1&hospital_name=协和医院 |
| 路径参数(Path Params) | 作为 URL 路径的一部分出现,用 : 声明。 | /createOrder/:hospital_id | /createOrder/1 |
- 在 Vue Router 中的配置与获取方式
| 类型 | 路由配置 | 跳转方式 | 获取方式 |
|---|---|---|---|
| 查询参数 | 不需要在路由配置中声明 | js router.push({ path:'/createOrder', query:{ hospital_id:1 } }) | js route.query.hospital_id |
| 路径参数 | 需要在路由配置中声明:{ path: '/createOrder/:hospital_id' } | js router.push({ name:'createOrder', params:{ hospital_id:1 } }) | js route.params.hospital_id |
- 主要区别与特点
| 对比点 | 查询参数(query) | 路径参数(params) |
|---|---|---|
| 是否必须声明 | ❌ 不需要在路由中声明 | ✅ 必须在 path 里声明 |
| URL 可读性 | 一般用来传递可选的、过滤类数据 | 一般用来传递必须的、标识资源的数据 |
| 是否可以省略 | ✅ 可以省略(例如 /createOrder) | ❌ 不可以省略(例如 /createOrder/:id 必须有 id) |
| 在刷新后是否保留 | ✅ 会保留在 URL 中 | ✅ 会保留在 URL 中 |
| 可传递数据类型 | 只能是字符串(会自动转为字符串) | 只能是字符串(也是字符串形式) |
| SEO 友好性 | 一般较差(动态拼接的 URL) | 较好(路径结构清晰) |
- 使用场景建议
| 场景 | 推荐使用 |
|---|---|
需要筛选、排序、分页(如 /list?page=2&type=vip) | ✅ 查询参数(query) |
访问某个具体资源(如 /user/123 或 /product/999) | ✅ 路径参数(params) |
| 数据是可选项,不一定要传 | ✅ 查询参数 |
| 数据是必须项,否则路由无意义 | ✅ 路径参数 |
- 直观例子对比
- 查询参数例子:
router.push({path: '/createOrder',query: {hospital_id: 123,hospital_name: '协和医院'}
})
URL: /createOrder?hospital_id=123&hospital_name=协和医院
在目标页读取:
const route = useRoute()
console.log(route.query.hospital_id)
- 路径参数例子:
// 路由配置
{ path: '/createOrder/:hospital_id', name: 'createOrder', component: createOrder }
URL: /createOrder/123
在目标页读取:
const route = useRoute()
console.log(route.params.hospital_id)2. new Date()
new Date() 表示创建一个代表当前时间和日期的对象。
例如,假设现在是 2025 年 10 月 30 日 上午 10:00:00,
那么执行:
console.log(new Date());
输出类似:
Thu Oct 30 2025 10:00:00 GMT+0800 (中国标准时间)
new Date(dateStr).getTime();
new Date(dateStr)
这部分表示:根据字符串创建一个日期对象。
比如:
const dateStr = "2025-10-30";
const dateObj = new Date(dateStr);
console.log(dateObj);
输出类似:
Thu Oct 30 2025 00:00:00 GMT+0800 (中国标准时间)
也就是说,new Date(dateStr) 会把 "2025-10-30" 这个字符串,
转换成一个 JavaScript 的 Date 对象(日期对象)。
.getTime()
getTime() 是 Date 对象的方法,用来获取:
从 1970年1月1日 00:00:00 UTC(世界标准时间) 到当前时间的 毫秒数。
也就是所谓的 时间戳(timestamp)。
举个例子:
new Date("2025-10-30").getTime();
可能会输出:
1761763200000
这个大数字就是一个“时间戳”,单位是毫秒(1 秒 = 1000 毫秒)。
为什么要转成时间戳?
因为时间戳:
- 在前后端传输中更标准、方便比较;
- 不受时区、日期格式影响;
- 后端通常也用时间戳来存储时间。
3. .join()
join() 是 JavaScript 数组(Array)的方法,
作用是:
把数组里的所有元素连接成一个字符串,并用指定的分隔符连接。
例子:
const arr = ['2025', '10', '30'];
const str = arr.join('-');
console.log(str);
输出:
"2025-10-30"