Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| interview:developer:vue_developer:start [2025/02/11 11:51] – perry.zeng | interview:developer:vue_developer:start [2025/05/22 10:39] (current) – [第二题] yan.feng | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Vue Developer Interview ====== | ====== Vue Developer Interview ====== | ||
| - | <note warning> | + | ==== 时限 ==== |
| + | * 2小时 | ||
| + | |||
| + | |||
| + | ==== 提交方法 ==== | ||
| + | |||
| + | * 第一题:请将答案写在 .txt 文件内。 | ||
| + | * 第二题:请将相关的 .js 和 .vue 文件放在一个文件夹内,不要包含脚手架文件(如 node_modules)和第三方插件。 | ||
| + | * 提交要求:所有题目答案统一放在一个文件夹内,并用 ZIP 格式压缩(不可用 RAR 或其他格式)。 | ||
| + | |||
| ===== 第一题 ===== | ===== 第一题 ===== | ||
| Line 7: | Line 17: | ||
| 阅读代码并回答以下问题: | 阅读代码并回答以下问题: | ||
| - | - button.update({ active: true, disabled: false })会输出?为什么? | + | - button.update({ active: true, disabled: false })的结果是什么?为什么? |
| < | < | ||
| Line 16: | Line 26: | ||
| opt = opt || {} | opt = opt || {} | ||
| this.status = { | this.status = { | ||
| - | active: typeof opt.active === ' | + | active: typeof opt.active === ' |
| disabled: typeof opt.disabled === ' | disabled: typeof opt.disabled === ' | ||
| } | } | ||
| Line 31: | Line 41: | ||
| } | } | ||
| - | getValidation(data) { | + | getValidation({ data }) { |
| Object.keys(this.status).forEach((k) => { | Object.keys(this.status).forEach((k) => { | ||
| const rule = this.rules.find((r) => r.key === k)?.value | const rule = this.rules.find((r) => r.key === k)?.value | ||
| Line 52: | Line 62: | ||
| function getValidation({ rule, data }) { | function getValidation({ rule, data }) { | ||
| if (!rule) { | if (!rule) { | ||
| - | return | + | return |
| } | } | ||
| const { key = '', | const { key = '', | ||
| Line 73: | Line 83: | ||
| return rowValue === value[' | return rowValue === value[' | ||
| } | } | ||
| - | | + | |
| - | return rowValue > value[' | + | |
| - | } | + | |
| - | case ' | + | |
| - | return rowValue >= value[' | + | |
| - | } | + | |
| - | case ' | + | |
| - | if (Array.isArray(rowValue)) { | + | |
| - | return !!rowValue.find((e) => (value[' | + | |
| - | } | + | |
| - | if (typeof rowValue !== ' | + | |
| - | return !!value[' | + | |
| - | } | + | |
| - | return false | + | |
| - | } | + | |
| - | case ' | + | |
| - | return rowValue < value[' | + | |
| - | } | + | |
| - | case ' | + | |
| - | return rowValue <= value[' | + | |
| - | } | + | |
| - | case ' | + | |
| - | return rowValue !== value[' | + | |
| - | } | + | |
| - | case ' | + | |
| - | if (Array.isArray(rowValue)) { | + | |
| - | return !rowValue.find((e) => (value[' | + | |
| - | } | + | |
| - | if (typeof rowValue !== ' | + | |
| - | return !value[' | + | |
| - | } | + | |
| - | return false | + | |
| - | } | + | |
| default: | default: | ||
| return false | return false | ||
| Line 141: | Line 119: | ||
| }) | }) | ||
| + | /** | ||
| + | * 1. button.update({ active: true, disabled: false })会输出?为什么? | ||
| + | */ | ||
| </ | </ | ||
| - | ==== 提交方法 ==== | ||
| - | |||
| - | * 请将答案写在txt文件内提交。 | ||
| Line 159: | Line 136: | ||
| - | 请用< | + | 请用< |
| - | + | ||
| - | ^ 时限 | 1小时 | | + | |
| - | ^ 提交方法 | 只需要把相关的.js和.vue文件用ZIP(不可用RAR或其他格式)压缩后电邮代码至 joe.mao@gz.questwork.com 和 don.lee@questwork.com。不要把脚手架文件如node_modules和第三方插件压缩在内。 | | + | |
| Line 179: | Line 153: | ||
| ==== 购物车功能 ==== | ==== 购物车功能 ==== | ||
| - | | + | **以下功能必须实现** |
| + | |||
| + | | ||
| * 能删除已选择产品 | * 能删除已选择产品 | ||
| * 能更改数量 | * 能更改数量 | ||
| * 能按產品名稱排序 | * 能按產品名稱排序 | ||
| + | |||