๐ŸŸ  3.2 this ใซ้›†็ด„ใ™ใ‚‹่จญ่จˆใจใ€ใใฎใƒกใƒชใƒƒใƒˆใƒปใƒ‡ใƒกใƒชใƒƒใƒˆ


โœ… ใ€่ฆ็‚นใ€‘


๐ŸŸข ใ€ใ‚ฏใƒฉใ‚นใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใฎ this ใซ้›†็ด„ใ•ใ‚Œใ‚‹ใ‚‚ใฎใ€‘

@Component
export default class Example extends Vue {
  @Prop() name!: string;         // โ† props โ†’ this.name
  count: number = 0;             // โ† data โ†’ this.count

  get upperName(): string {      // โ† computed โ†’ this.upperName
    return this.name.toUpperCase();
  }

  increment(): void {            // โ† methods โ†’ this.increment()
    this.count += 1;
  }
}

ๆฉŸ่ƒฝ ๆ›ธใๆ–น ใฉใ†ใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹๏ผŸ
props @Prop() name!: string this.name
data count: number = 0 this.count
computed get upperName() { ... } this.upperName
methods increment() { ... } this.increment()
Vue ๆฉŸ่ƒฝ $store, $router, $emit this.$store.dispatch() ใชใฉ

๐Ÿ“Œ ใ€this ใซ้›†็ด„ใ™ใ‚‹่จญ่จˆใฎใƒกใƒชใƒƒใƒˆใ€‘

ใƒกใƒชใƒƒใƒˆ ใชใœ่‰ฏใ„๏ผŸ
ใ‚ขใ‚ฏใ‚ปใ‚นใŒไธ€่ฒซใ—ใฆใ„ใ‚‹ ใ™ในใฆ this.xxx ใงใ‚ขใ‚ฏใ‚ปใ‚นใงใใ‚‹
่จ˜่ฟฐใŒใ‚ทใƒณใƒ—ใƒซ ๆ›ธใๆ–นใ‚’่ฆšใˆใ‚‹ใฎใŒ็ฐกๅ˜
ใ‚ฏใƒฉใ‚น่จญ่จˆใซๆ…ฃใ‚Œใฆใ„ใ‚‹ไบบใซใฏ้ฆดๆŸ“ใฟใŒใ‚ใ‚‹ Java / C# ใชใฉใฎ OOP ๆ–‡ๅŒ–ใจ่ฟ‘ใ„
TypeScript ใจใฎ้€ฃๆบใ‚‚ๅฏ่ƒฝ name!: string ใงๅž‹ไป˜ใ‘ใงใใ‚‹

๐ŸŸค ใ€this ใซ้›†็ด„ใ™ใ‚‹่จญ่จˆใฎใƒ‡ใƒกใƒชใƒƒใƒˆใ€‘

ใƒ‡ใƒกใƒชใƒƒใƒˆ ใชใœๅ•้กŒ๏ผŸ
ไฝ•ใŒใฉใ“ใ‹ใ‚‰ๆฅใŸใฎใ‹ใ‚ใ‹ใ‚Šใซใใ„ this.name ใŒ props ใชใฎใ‹ data ใชใฎใ‹ไธ€่ฆ‹ใ‚ใ‹ใ‚‰ใชใ„
ๅคง่ฆๆจกใซใชใ‚‹ใจ this ใŒ่‚ฅๅคงๅŒ–ใ™ใ‚‹ ไผผใŸๅๅ‰ใŒๅข—ใˆใฆ่ก็ชใ—ใ‚„ใ™ใ„ใ€่ชญใฟใฅใ‚‰ใ„
ใƒญใ‚ธใƒƒใ‚ฏใฎๅ†ๅˆฉ็”จใŒใ—ใซใใ„ this ใซไพๅญ˜ใ—ใฆใ„ใ‚‹ใจ composable ใซใงใใชใ„
this ใฎใ‚นใ‚ณใƒผใƒ—ใ‚’้–“้•ใˆใ‚„ใ™ใ„ ้–ขๆ•ฐใ‚’ๆธกใ™ๆ™‚ใซ this ใŒใ‚บใƒฌใฆใ‚จใƒฉใƒผใซใชใ‚‹๏ผˆbind ๅฟ…่ฆ๏ผ‰

โŒ ใ€ไพ‹๏ผšthis ใงใฉใ“ใ‹ใ‚‰ๆฅใŸใ‹ใ‚ใ‹ใ‚Šใซใใ„ใ‚ณใƒผใƒ‰ใ€‘

console.log(this.name);  // โ† props ใ‹ data ใ‹ใ‚ใ‹ใ‚‰ใชใ„

console.log(this.count); // โ† ใ“ใ‚Œใ‚‚ data ใชใฎใ‹ computed ใชใฎใ‹๏ผŸ