programing

Vue의 클래스 구성 요소에 사용할 액세스 한정자를 선택하십시오.

newsource 2022. 8. 14. 12:15

Vue의 클래스 구성 요소에 사용할 액세스 한정자를 선택하십시오.

Vue 클래스의 속성 및 메서드에 대해 어떤 수식어를 사용해야 합니까?(사용하고 있습니다.vue-class-component패키지) public,private,protected?

또는 액세스 수식자를 설정할 필요가 있는 린터 규칙을 꺼야 합니까?

다음은 구성 요소의 예입니다.

@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: 속성 또는 메서드는 모든 클래스에서 액세스할 수 있습니다.

보호:동일한 클래스 또는 하위 클래스 내의 속성 또는 메서드에 액세스할 수 있습니다.

개인:동일한 클래스 내에서 속성 또는 메서드에 액세스할 수 있지만 해당 클래스 밖에서는 액세스할 수 없습니다.

자세한 내용은 여기를 참조해 주세요.

사용.public다른 컴포넌트가 해당 값을 수정하거나 해당 함수를 호출하지 않는 한 일반적으로 문제가 없습니다.그냥...public디폴트에서는, 다음으로 치환합니다.private또는protected필요할 때.

린터를 끄면 문제가 발생하지만 컴포넌트 간에 사용되는 속성이나 메서드에 대한 액세스 수식자를 정의하지 않은 경우에는 디버깅이 번거로울 수 있습니다.

언급URL : https://stackoverflow.com/questions/55339564/what-access-modifiers-should-i-use-for-the-class-component-in-vue