ភាសា Astro ត្រូវ​បាន​បង្កើត​ឡើង​ដោយឈរ​នៅ​លើ​ភាសា HTML រួម​ផ្សំ​នឹង​លក្ខណៈ​ពិសេស​មួយ​ចំនួន​ដែល​អនុញ្ញាតិ​អោយ​យើង​មាន​ការងាយ​ស្រួល​ក្នុង​ការប្រើប្រាស់​អថេរ​និង​ក្បួ​ន​ខ្នាត​នៃ​ភាសា JavaScript នៅ​ក្នុង​នោះ។ ដូចនេះ បើ​សិន​ជា​យើង​មាន​មូលដ្ឋាន​គ្រឹះ​នៃ​ភាសា HTML យ៉ាង​រឹងមាំ​ហើយ​នោះ បញ្ហា​នឹង​លែង​ចោទ​ចំពោះ​យើង​ហើយ​នៅ​ក្នុង​ការសរសេរកម្មវិធី Astro ។

 

ជាក់ស្តែង នៅ​ក្នុង​ភាសា Astro ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ការប្រើប្រាស់អថេរ​និង​ក្បួន​នៃ​ភាសា JavaScript ចាំបាច់​ត្រូវ​ដាក់​នៅ​ក្នុង​សញ្ញា { } ។

 

<!--src/pages/about.astro-->
---
const name = "Astro"
const year = 2021

function display(name, year){
    const message = `កញ្ចប់ ${name} ​ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ឆ្នាំ ${year}`
    return message
}
---

<p>{display(name, year)}</p>

<style>
p{
    color: blue;
}
</style>

 

ដូច​គ្នា​ដែរ អថេរ​នៃ​ភាសា JavaScript ក៏​អាច​ប្រើប្រាស់​ជា​តំលៃ​នៃ​លក្ខណៈ (attribute) របស់​ធាតុ HTML ទាំងឡាយ​បាន​ដែរ​។

 

<!--src/pages/about.astro-->
---
const name = "message"
---

<p class={name}>ស្វាគមន៍​មកកាន់​ទំព័រ about.astro</p>

<style>
.message{
    color: green;​
}
</style>

 

ដោយ​ហេតុ​ថា ក្បួន​នៃ​ភាសា JavaScript នៅ​ក្នុង​ផ្នែក frontmatter មាន​តែ​នៅ​លើ server តែ​ប៉ុណ្ណោះ ដូចនេះ​យើង​មិន​អាច​ប្រើប្រាស់​ក្បួន​ទាំងនោះ​ជា​តំលៃ​នៃ​លក្ខណៈ​ផ្សេង​របស់​ធាតុ HTML បាន​ឡើយ​ ជាពិសេស​លក្ខណៈ onClick ពីព្រោះ​លក្ខណៈ​នេះ​ត្រូវការ​តំលៃ​ជា​ក្បួន​ដែល​នឹង​ត្រូវដំណើរ​ការ​នៅ​ក្នុង​ browser នៅ​ពេល​អ្នក​អាន​ចុច​។ ហើយ​នៅ​ក្នុង browser ក្បួន​នៅ​ក្នុង​ផ្នែក frontmatter លែង​មាន​តទៅ​ទៀត​ហើយ​។

 

ក៏ប៉ុន្តែ​មានវិធី​មួយ​ដែល​យើង​អាច​បញ្ជូន​ក្បួន​ជា​ភាសា JavaScript ទៅកាន់​ browser និង​ផ្តល់​ក្បួន​នោះ​ជា​តំលៃ​សំរាប់​លក្ខណៈ onClick របស់​ធាតុ HTML ទាំងឡាយ​​បាន។

 

<!--src/pages/about.astro-->
---
const message = "សូម​ចុច"
---

<button id="button">{message}</button>
<script>
    function handleClick () {
        alert("ប៊ូតុង​ត្រូវ​បាន​ចុច!")
    }
    document.getElementById("button").addEventListener("click", handleClick)
</script>

<style>
#button{
    color: white;
    background: green;​
}
</style>

 

នៅ​ក្នុង​ភាសា Astro យើង​អាច​ប្រើប្រាស់​វិធី​ឈ្មោះ map( ) នៅ​ក្នុង​ភាសា JavaScript ក្នុង​ការបង្កើត​ធាតុ HTML ​​​​​​​​​​​​​​មួយចំនួន​ចេញ​ពី​កំរង JavaScript ណា​មួយ​បាន​។

 

<!--src/pages/about.astro-->
---
const items = ["ស្វាយ", "ចេក", "ដូង"]
---
<ul>
  {items.map((item) => (
    <li>{item}</li>
  ))}
</ul>

 

យើង​ក៏​អាច​ប្រើប្រាស់​ប្រមាណ​សញ្ញា​កត្តវិទ្យា (logical operator) ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​និង​ឬ​ប្រមាណ​សញ្ញា​មាន​ជំរើស (conditional operator) នៅក្នុង​​ការជ្រើសរើស​យក​ធាតុ HTML ទាំងឡាយ​បាន​ដែរ​។

 

<!--src/pages/about.astro-->
---
const visible = true;
---
{visible && <p>ត្រូវ​បាន​ជ្រើសរើស​យក!</p>}
​
{visible ? <p>ជំរើស​ទី ១!</p> : <p>បើ​ពុំ​នោះ​សោត​ទេ ជំរើស​ទី ២!</p>}

 

​មាន​របៀប​ពីរ​យ៉ាង​ក្នុង​ការធ្វើកំណត់ពន្យល់​នៅ​ក្នុង​ភាសា Astro ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​។ របៀប​ទី​មួយ​គឺ​ការធ្វើ​កំណត់​ពន្យល់​តាម​បែប HTML និង​របៀប​ទី​ពីរ​គឺធ្វើ​កំណត់ពន្យល់​តាម​បែប JavaScript ។

 

<!--src/pages/about.astro-->
---
const visible = true;
---
{/* ការប្រើប្រាស់​ប្រមាណ​សញ្ញា​កត្តវិទ្យា​ */}
{visible && <p>ត្រូវ​បាន​ជ្រើសរើស​យក!</p>}
{/* ការប្រើប្រាស់​ប្រមាណសញ្ញា​ជ្រើសរើស */}
{visible ? <p>ជំរើស​ទី ១!</p> : <p>បើ​ពុំ​នោះ​សោត​ទេ ជំរើស​ទី ២!</p>}

 

យើង​ត្រូវ​កត់​សំគាល់​ថា ការធ្វើ​កំណត់​ពន្យល់​តាម​បែប HTML កំណត់​ពន្យល់​នោះ​នឹង​ត្រូវ​បញ្ជូល​ទៅ​ក្នុង​ browser តែ​បើ​ធ្វើ​កំណត់តាម​បែប JavaScript វិញ កំណត់ពន្យល់​នឹង​ត្រូវ​រំលង​ចោល ដោយ​មិនបញ្ជូលទៅ​ក្នុង browser ឡើយ​៕