我应该为Vue中的类组件使用哪些访问修饰符?

我想知道我应该为Vue类中的属性和方法使用什么修饰符?(我使用vue-class-component包)。publicprivateprotected

还是应该关闭提示我需要设置访问修饰符的链接规则?

以下是一个组件示例:

@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...
  }
}

解决方案

公共:您可以从任何类访问该属性或方法。

受保护:您可以访问同一个类或任何子类中的属性或方法

Private:您可以访问同一个类内的属性或方法,但不能访问该类外的属性或方法。

参考here。

只要您不关心其他组件是否修改该值或调用该函数,使用public通常是可以的。我只会在默认情况下使用public,然后在必要时将其替换为privateprotected

关闭链接器也有效,但如果在组件之间遇到问题,并且尚未为组件之间使用的属性或方法定义访问修饰符,则调试可能会很麻烦。

相关文章