我应该为 Vue 中的 class-组件使用什么访问修饰符?
What access modifiers should I use for the class-component in Vue?
我想知道我应该为 Vue 中的属性和方法使用什么修饰符 类? (我使用 vue-class-component
包)。 public
、private
、protected
?
或者我应该关闭表示我需要设置访问修饰符的 linter 规则吗?
这是一个示例组件:
@Component({
components: { MyChildComponent }
})
export default class MyComponent extends Vue {
// props
@Prop({ type: String, default: '' }) public readonly value!: string
@Prop({ type: Array, default: () => [] }) public readonly myProp1!: any
@Prop({
type: [Array, Object],
default: () => ({})
}) public readonly myProp2!: any
// data variables
public myVar1: MyClass | null = null
public myVar2: boolean = false
// computed
public get isDisabled (): boolean {
// code...
}
// watch
@Watch('value')
public onValueChange (val) {
// code...
}
// hook
public mounted () {
// code...
}
// method
public setMenuItem () {
// code...
}
}
Public: 您可以从任何 class.
访问 属性 或方法
受保护: 您可以在同一个 class 或任何子 classes
中访问 属性 或方法
Private: 您可以在同一 class 内访问 属性 或方法,但不能在 class 之外访问。
参考here。
使用 public
通常没问题,只要您不关心另一个组件是否修改该值或调用该函数。我会默认使用 public
,然后在必要时将其替换为 private
或 protected
。
关闭 linter 也可以,但是如果您 运行 遇到组件之间的问题并且您没有为组件之间使用的属性或方法定义访问修饰符,那么它可能会很麻烦调试。
我想知道我应该为 Vue 中的属性和方法使用什么修饰符 类? (我使用 vue-class-component
包)。 public
、private
、protected
?
或者我应该关闭表示我需要设置访问修饰符的 linter 规则吗?
这是一个示例组件:
@Component({
components: { MyChildComponent }
})
export default class MyComponent extends Vue {
// props
@Prop({ type: String, default: '' }) public readonly value!: string
@Prop({ type: Array, default: () => [] }) public readonly myProp1!: any
@Prop({
type: [Array, Object],
default: () => ({})
}) public readonly myProp2!: any
// data variables
public myVar1: MyClass | null = null
public myVar2: boolean = false
// computed
public get isDisabled (): boolean {
// code...
}
// watch
@Watch('value')
public onValueChange (val) {
// code...
}
// hook
public mounted () {
// code...
}
// method
public setMenuItem () {
// code...
}
}
Public: 您可以从任何 class.
访问 属性 或方法受保护: 您可以在同一个 class 或任何子 classes
中访问 属性 或方法Private: 您可以在同一 class 内访问 属性 或方法,但不能在 class 之外访问。
参考here。
使用 public
通常没问题,只要您不关心另一个组件是否修改该值或调用该函数。我会默认使用 public
,然后在必要时将其替换为 private
或 protected
。
关闭 linter 也可以,但是如果您 运行 遇到组件之间的问题并且您没有为组件之间使用的属性或方法定义访问修饰符,那么它可能会很麻烦调试。