នៅពេលយើងសរសេរកូដនៅក្នុង vue ហើយនៅក្នុង script គឺមាន <script > និង <script setup>
<script > គឺប្រើជាមួយ vue ចាស់
<script setup> ត្រូវបានប្រើជាមួយ vue3 ដោយសារងាយស្រួលសរសេរ និងសរសេរកូដនៅខ្មីជាង
<script >
<template> <h1>I'm {{ name }}. my age is {{ age }} years old.</h1> </template> <script> import {ref} from 'vue' export default{ setup(){ const name = ref("Ros Dul"); const age = ref(28) return{ name,age } } } </script>
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPxiCJL3a1NS4ZzKFFwdg-tZzrBC3NIWmu80tz7tH2rw84jNJQa1m1ZRVtRD9EFgfQTec8w50NG9pUCvWmQRXBkDgE10Cou3qnWtKCxBiRURsMUORuS1eldnMgYVznt9W5idQiUtyZD8p4SQ7FeVM1TOTxRGaGUrnIhKTRCQPZh5CBillycGGKe3WtBWk/s1600/Screenshot%202024-05-25%20at%2010.28.47%20at%20night.png)
<script setup>
<template> <h1>I'm {{ name }}. my age is {{ age }} years old.</h1> </template> <script setup> import {ref} from 'vue' const name = ref("Coco Dul") const age = ref(18) </script>
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8b_nZ0dHMpSGnJj3f3QIBpBilduojREYoNLRBS3LXVN94V-t_0yeZmcHBSEoZrdqrPry157mXJ8gTLwxniChba37zbx9wQEONuUWbJMOJf6mcxG6CKYMylrjL54jg3c7RJ37R3fdBu5HO8EYABeQCjFK4yujiLp8vYHKtdMgaHs7W4ELI7SzeCD0Vz4s/s1600/Screenshot%202024-05-25%20at%2010.34.06%20at%20night.png)
ប្រើ Method
<script >
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3pYk530Bb7mFe4w_x0KxIkK6cUDDb7CC4FBIIJdPxlMoHMW4Y2uEmqZ5vSWzGxpWfYEd0EHkfJYNhbQkJ4MC1lLOlw6peHhQIl_Ww3eboNShYn8vt4bIgZjL7gluQ71d0twpIml-O5u8eU-yyTulgMvcyBtmvgNgeB0g6G-29xtPhSV3PCbpnGXanhBc/s1600/Screenshot%202024-05-25%20at%2010.41.02%20at%20night.png)
<script setup>
<template> <h1 @click="hadleClick">I'm {{ name }}. my age is {{ age }} years old.</h1> </template> <script setup> import {ref} from 'vue' const name = ref("Coco Dul") const age = ref(18) const hadleClick = ()=>{ name.value = "Mey Mey", age.value = 21 } </script>
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyj7PpQ2e8Jo6jEEdrFGGJ4iWxgR3ZhJXHL7VKN0q9MgTQ-oo9UjMtWLWpgaxuVhe-YlzvkYAsqAzzsrCq1A1RzEpN4Rs3TeSNs5sicbohLchfzHMdkrj6PRZkOioZIloNV_zmiuDXVGDKmmJ2uZNFZHfgAh7BksfMWSxSLxVxXTuyYPUu4iMXlW0H8N4/s1600/Screenshot%202024-05-25%20at%2010.51.43%20at%20night.png)
Child components
យើងបង្កើត file មួយឈ្មោះថា MyButton
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAinaFgtUekn30c9eFI7_LT9RbUTGlVfZZIXOwipltXApE_nBFo3uHXtBYAycOk9KeGM4_6UrAjLyAOX-Em0gDs7FKiAQpsX2Zq-LeNgjzo3c_pfpSTzAdSyfO7lQvlqSgu9BzjLmKW8a10DboIJJ2BVr-NqVMoo6JKKCEkeg0qqllhFgTpcwXpPj_uho/s1600/Screenshot%202024-05-25%20at%2010.59.24%20at%20night.png)
<script >
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC5xg-0CapmEf6fMMulBwNvlODRWurmJEk0LaLU316U4EiTBVhtX-nLXU13L-8CAnU6eXyonlRj-D7-OZeDewbVXUGal9vf4NnEg2q0ZnHxRtE7tbNFF5g7SgDoGrPEpgnIAqqT9kE6UJdW_EO3pSCpXOV9XiBFBbKKb-5877t_ufuICMK-TSYC8Zks6U/s1600/Screenshot%202024-05-25%20at%2011.04.29%20at%20night.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGyDVIP3J8RmdKaqBp-sHJn2P5nwjExcqJ7T1TvqXCNRx7cQvHBcZmsO8WNshwTBkQBWxIZWD51tjzCoHLuaqzWCooj37KHBO3FFXIFcY-dHawvCLSWLgcyVHJNhw-CiOsPM2K35Cw5KX8l2n9cef93Q0xbIRlEzCDZvK52gi8YOvTTIJc6lq9l79oj0/s1600/Screenshot%202024-05-25%20at%2011.05.18%20at%20night.png)
<script setup>
<template> <h1 @click="hadleClick">I'm {{ name }}. my age is {{ age }} years old.</h1> <Btn/> </template> <script setup> import {ref} from 'vue' import Btn from './components/MyButton.vue' const name = ref("Coco Dul") const age = ref(18) const hadleClick = ()=>{ name.value = "Mey Mey", age.value = 21 } </script>
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhohlxB1ZM_4oRXodEA_rzsOFRVwg6TeDY9oNaghgjsFQUQ1oQDUyLhd14EFSjGc-rHP5fRM-xlToV7thzrKyQ4RiF9H9PiP_8D30EF6FZqwbn0_UyBdOVBuJ0e-546KMD_ioeGxD76KXxclh5V_kEtBi5msMQgm4Bebz27dQkD3bprMpCFuZzMK87mZmM/s1600/Screenshot%202024-05-25%20at%2011.08.40%20at%20night.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGyDVIP3J8RmdKaqBp-sHJn2P5nwjExcqJ7T1TvqXCNRx7cQvHBcZmsO8WNshwTBkQBWxIZWD51tjzCoHLuaqzWCooj37KHBO3FFXIFcY-dHawvCLSWLgcyVHJNhw-CiOsPM2K35Cw5KX8l2n9cef93Q0xbIRlEzCDZvK52gi8YOvTTIJc6lq9l79oj0/s1600/Screenshot%202024-05-25%20at%2011.05.18%20at%20night.png)
props
File មួយឈ្មោះថា MyButton.vue
<script >
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCBlPsVfDc8VQFL6RgTy8_Bvhjf9HxH5oWl5VFEOi4BPKl1aLXUh2bMsgea5TfPbw6vvrZ8NnqFSm4Wwbg3SHn2Ng6m5vbF0ofxEsaVcmDo5otuBw_OMOHKyTniBIvNvOENJKRaCC4q8i3MWZTZ1M6jgF1kp-Wpjcbb8icAhSJ2skxFPDSEzRVDTBZgM8/s1600/Screenshot%202024-05-25%20at%2011.16.37%20at%20night.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1dsTM2DJ_9DbOcBQvqIJg0PU3ZRZs98QlUvXv6M3f7siOq7JBP0VhpojMe1ySC3zroHSSxnUFztOOPmC5RbJpg48u7S6XnBtL6o4CfoaAipBHysbzVsi0egUaDfNNiq7C74E6OeHKiqvT_oM8H99I7BYGN974_Ga7rYfZHUhfy1gRMk0Yqc4JFdDrtR4/s1600/Screenshot%202024-05-25%20at%2011.19.43%20at%20night.png)
<script setup>
File មួយឈ្មោះថា MyButton.vue
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUYXLVhQpVV0l4oAenygMVsUIEyWfZQb41AfRHm4NXeZK8C3-DRNzTxceLBPQ6uGLu3Ru9C2jjsM1G8g2IHswjArhyphenhypheny_9lZJRcMqdQYN15UuRLT1tUGrog9ZpTH3m8DL_7DVTjT1nHOmRBT1IkN2Jj-gUrMN2ZhiOL8vKmDjclPlIvPdRu2DEa9kioZyE/s1600/Screenshot%202024-05-25%20at%2011.23.55%20at%20night.png)
emit និង custom event
In Vue.js, $emit is a built-in method used for child components to communicate with their parent components.
<script >
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRechXOaZxSSkfk1HpqQpp92x5XkpXIAuUonawRN3VjMjqVzlyxmlWb2L2qByq7C1N_-XCcJVUF0UsPh7sGSLZAMWRMii6tUPI2Y5iEp9dibPTOkw_1P3v5oRp0e-gKsk_KbBj1p3jak-CujGMGT1U2R0v4xy8-dih-iwjrT9M2BS5wFlEagK2GdUYZaI/s1600/Screenshot%202024-05-26%20at%209.43.48%20in%20the%20morning.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU9UNQY3gffQQVb1vrjgGkh9posV0VW7eEeCdKTRXXR1UcQ2xkAJRciRnPyvz7KLlszKWaYa1l9p0nUqmz-ac0pjdABJQOgXhuWBHsJJzBn6XNIY7Zn6hiVldyiNNyYsWi4C72cpcyEAc-dBndOOzAFmpXmCptDyi1U5YZH1AEjKK4MXcCCQp2cHa7hMs/s1600/Screenshot%202024-05-26%20at%2010.06.28%20in%20the%20morning.png)
<template> <h1 @click="hadleClick">I'm {{ name }}. my age is {{ age }} years old.</h1> <Btn @btnClicked="showAlert" text="Click Me" /> </template> <script> import {ref} from 'vue' import Btn from './components/MyButton.vue' export default{ setup(){ const name = ref("Ros Dul"); const age = ref(28); const hadleClick = ()=>{ name.value = 'Lyna', age.value = 18 } const showAlert = ()=>{ alert("Child btn was clicked") } return{ name,age, hadleClick, showAlert } }, components: { Btn } } </script>
<script setup>
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNVnhUonCzn-atz2WwaIj4xZcA7bEe1Mwbfs24a5WfprjAFhwywQuEp6Kf4EqMUXoa6ryaQzmweXm_skBikrY5WWqrSjsaHs5tSEOQw0K-aUu8ZS5KmJPRA8659WGF0_JXZTUU4VV6OVuGaBtheIgwyGOltvRKZSiQjmbDHMSpDLbVCPZVCB6IicDv6ks/s1600/Screenshot%202024-05-26%20at%2010.14.18%20in%20the%20morning.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjesxWdxg1-R15dEngNS3L2HoQDM3fEk_HAZseIWVIi7u4x0AaaTitdgPwiRUqlEFWT9YCSm-T_tmbNsXT2OHNt9R_RWZqxKH0oIwZOc8HFWlqiadNQbvOCJ9wD5J9kBh50Oxyk5aZA56K9wSonnhwZwGShkdw2MjGUBcQ_Aa2hrF8rb0KYi6lw5R10WPs/s1600/Screenshot%202024-05-26%20at%2010.22.14%20in%20the%20morning.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2YL7qKmEs786BClxhPAJxR7SoMor7gxmpdz7xiZBv90gO5D1T6DRKp1o_xM0MbI83NNxbv-gk9F8n0qRTT9NusOBzUJ7xzsCWpjDOBzNhIaxoaauOeUv0R0P9GVtB4s-VD84U13T-006T-TpexP7Zmap1-La8YcqGTzHm7ebemBvxYIFUF4S0xv5evwM/s1600/Screenshot%202024-05-26%20at%2010.24.17%20in%20the%20morning.png)
យើងអាចសរសេរបែបនេះនៅ File MyButton.vue គឺវាដូចគ្នា
<template> <button @click="handleBtnClick">{{ text }}</button> </template> <script setup> const props = defineProps({ text:{ type: String, default: "No text specified" } }) const emit = defineEmits(['btnClicked']) const handleBtnClick = ()=>{ emit('btnClicked') } </script>
emit និង pass data
ពេលយើងចុចលើប៉ូតុនទៅរួចវាប្តូរលេខអាយុ
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNv8RfE-Bh4GF3H9LWxjYxOYxQ3-h9phL8ZJWeiPykwghIH3feuaiU3cOjGHdJvAU8iTWAhlJjWvW1ofuAx63BqnTtryS_v34oxACOAJb0gZiRq53JJcJ-BsCKgp-OV3_0qQ6g-1tna9mHKeVhAuqly998MUuE8ezmT48giNC9IceNA-gcoSovp-iUslM/s1600/Screenshot%202024-05-26%20at%2011.02.08%20in%20the%20morning.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hyphenhyphen7Gy0chWwp5lfpKiL6c2gozWfNTZl2r4bNXrzUhXNF3sTHo1iZq8yZVELYcvfUpFXMPOAMf6CV2h7N5t3WpRajJXI445lrX1jJ_Fhw3RojTckhuL6-ROMPbCQArZ8sCCA7jQzE4P1dKMf4fCp3oByRXqq5ZUrbD5Uc5B0qUrqSnsRlaWFQMMN4pD2A/s1600/Screenshot%202024-05-26%20at%2011.03.10%20in%20the%20morning.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiHLQEcGGbb4uQStzaIUca_W7DSvVdojKK-vVwmgoo7MBF40pF4vGp9PoNUB9VBrE8qVw9vaH5JC_30U233o6rwJGtRLGSgbzAczFzSBxTUrH3QYBiTBrt8LvygJgvRiHaalVsXkaYpHjKpSzCDkDsvyaWPUiF_wyALjpl9HtmlHT62-ZNdY98SVXqkyM/s1600/Screenshot%202024-05-26%20at%2011.04.56%20in%20the%20morning.png)
0 Comments