Vue 数据代理机制对属性名的要求
在 Vue 的数据代理机制中,属性名需遵循以下关键规则:
1. 禁止以 _
或 $
开头 ⚠️
- Vue 会跳过代理以
_
或$
开头的属性 - 原因:这些前缀被 Vue 保留用于内部属性(如
_data
,_uid
,$refs
,$el
等) - 示例:
data() {return {count: 1, // ✅ 正常代理 (this.count)_internal: 2, // ❌ 不代理 (this._internal 不可访问)$private: 3 // ❌ 不代理} }
2. 避免与实例方法/属性冲突 🚫
- 不能覆盖 Vue 实例的内置属性/方法(如
$emit
,$watch
,data
等) - 同名属性会导致内置方法失效:
data()