Доод шатны /хүүхэд/ компонентоос параметр дамжуулах

Интернетэд сууриласан хөтөч дээр ажилладаг програмуудыг боловсруулахад javascript хэл чухал үүрэгтэй бөгөөд сүүлийн жилүүдэд javascript фреймворкуудын хөгжлийн үр дүнд нэг хуудаст програмчлалын аргачлал улам хүчтэй орж ирэх боллоо. Програмчлалын чиглэлээр сурч, ажиллаж байгаа залуучуудад зориулан Vuejs фреймворкийн хичээлүүдийг бэлтгэн оруулж байгаагийн ээлжит хичээлээр эцэг компонентоос хүүхэд компонентод параметрийг дамжуулахын зэрэгцээ хүүхэд компонентод үүссэн үйл явцыг эцэг компонент мэдэх асуудлыг хэрхэн шийдэхийг авч үзье. Үүний тулд Car компонентийн кодыг

<template>
  <div class="car">
    <h3>Name: {{ carName }} \ {{reverseName}}</h3>
    <p>Year: {{ carYear }}</p>
    <button @click="changeName">Нэрийг өөрчлөх</button>
  </div>
</template>

<script>
  export default {
    props: {
      carName: {
        type: String,
        default: 'Нэр байхгүй'
      },
      carYear: Number
    },
    methods: {
      changeName() {
        this.carName = 'Prius'
      }
    },
    computed: {
      reverseName() {
        return this.carName.split('').reverse().join('')
      }
    }
  }
</script>

гэж өөрчилье. Хичээлийн материалыг илүү ойлгохын тулд Vue фреймворкийн үндсэн ойлголтууд багцын хичээлүүдийг үзэхийг зөвлөе.

Компонентийн шаблонд Нэрийг өөрчлөх товчийг нэмээд товч дээр дарах үйл явцын боловсруулагчийг methods талбарт тодорхойлон өгсөн. changeName арга carName параметрийн утгыг өөрчилнө. Ингэснээр Нэрийг өөрчлөх товчийг дарахад машины нэрийг Prius болгон өөрчлөхөөр болсон. Програмын ажиллагаа шалган

үзвэл Нэрийг өөрчлөх товчийг дарахад машины нэрийг Prius болгон өөрчлөн бүх зүйл хэвийн ажиллана. Хэрвээ хөтөчийн Inspect цонхны Console хэсгийг нээвэл тэнд

Эцэг компонентийг дахин ачааллах бүрд талбарын утга өөрчлөгдөх учраас хүүхэд компонентод талбарын утгыг шууд өөрчлөхөөс зайлсхийж үүний оронд параметрийн утга дээр сууриласан тооцоологдох шинж эсхүл өгөгдлийг ашиглахыг зөвлөсөн сануулга өгсөн байгаа.

Жич: Javascript код алдаа, сануулгыг консолд дамжуулаад ажиллагаагаа дуусгадаг тул боловсруулалтын явцад консолын цонхонд үзүүлэх мэдээллийг байнга шалгахыг зөвлөе.

Програмын ажиллагааны логикоор carName талбарыг App компонентод тодорхойлоод түүнийг Car компонентод дамжуулан үзүүлнэ. Гэтэл бид Car компонентод carName талбарыг шууд өөрчилөхөд тухайн компонентод талбарын утга өөр болох ч эцэг компонентод тодорхойлогдсон утга хэвээр үлдсэн нь дээрх үр дүнгээс тодорхой харагдана. Үүнийг л консолд сануулаад байгаа хэрэг. Эндээс дүгнэвэл Car компонент хэвийн ажиллан машины нэрийг өөрчилж байгаа ч манай програмын ерөнхий логик тийм зөв ажиллахгүй байгаа нь тодорхой. Учир нь App компонентод тодорхойлогдсон carName талбарыг Car компонент өөрчилснөө эцэг компонентод мэдэгдээгүйтэй холбоотой юм. Эндээс carName талбарын утга Car компонентод өөрчлөгдсөнг эцэг буюу App компонентод хэрхэн мэдэгдэх вэ? гэсэн асуулт гарч ирнэ. Үнэн хэрэгтээ үүнийг их энгийнээр шийднэ. Car компонентийн кодыг

<script>
  export default {
    props: {
      carName: {
        type: String,
        default: 'Нэр байхгүй'
      },
      carYear: Number
    },
    methods: {
      changeName() {
        this.$emit('nameChanged', 'Prius')
      }
    },
    computed: {
      reverseName() {
        return this.carName.split('').reverse().join('')
      }
    }
  }
</script>

гэж өөрчилье. Кодын changeName аргад carName талбарын утгыг шууд өөрчлөхгүйгээр javascript обьект бүрд байдаг $emit аргаар эцэг компонентод талбарын өөрчлөлтийг мэдэгдэнэ. $emit арга эхний параметрээр үйл явцын нэрийг харин хоёрдахь параметрээр өөр компонентод дамжуулах утгыг авдаг. Иймээс changeName аргад carName талбарын утгыг шууд өөрчлөхгүйгээр this.$emit('nameChanged', 'Prius') гэж хүүхэд компонентод үүссэн nameChanged үйл явцын нэр, Prius -ийг дамжуулна. Үйл явцын нэрийг та өөрийн хүссэнээр өгч болно. Хүүхэд компонентод үүссэн үйл явцыг эцэг компонентод

<template>
  <div>
    <h1>Эцэг: {{ carName }}</h1>
    <app-car
      :carName="carName"
      :carYear="carYear"
      @nameChanged = "carName = $event"
    ></app-car>  
  </div>
</template>

гэж сонсоно. Үүний тулд Car компонентийг оруулан ирэх app-car тегд nameChanged үйл явцыг боловсруулагчийг v-on: директивээр холбон өгнө. v-on: директивийн бичлэгийг @ гэж хураангуйлдагийг Директивийн тэмдэглэгээ хичээлээс мэднэ. Үйл явцыг боловсруулагчийг App компонентийн methods талбарт тодорхойлоод дуудах эсхүл inline байдлаар шууд тодорхойлох боломжийг vuejs бидэнд олгодог тул carName = $event гэж өгсөн. Компонентоос ирсэн параметрүүдийг $event гэж авдагийг бид мэдэх учраас carName = $event бичлэг нь carName талбарын утгаар хүүхэд компонентоос ирсэн параметрүүдийн утгыг олгоно гэдгийг илэрхийлнэ.
Кодын өөрчлөлтөө хадгалаад хуудсаа шинэчлээд Нэрийг өөрчлөх товчийг дарахад

консолд сануулга гарахгүйгээр машины нэр хоёр компонентод зэрэг өөрчлөгдөнө.
Ингэснээр бид хүүхэд компонентод үүссэн үйл явцыг эцэг компонентод мэдэгдэн түүнд параметрийг дамжуулан талбарын утгын өөрчлөлтийг хийж чадлаа.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 1003 Төлбөртэй

Интернетэд суурилсан технологи програм бүтээх ажилд зонхилох байр суурийг эзлэх болоод байгааг хүн бүр мэднэ. Учир нь интернет өнөөдөр асар хурдацтай хөгжин компьютер, гар утас, пад зэрэг электрон төхөөрөмжүүдээс гадна телевиз, суурин утас, гэр ахуйн ухаалаг төхөөрөмжүүд гээд интернетэд холбогдож болох бүхий л техник хэрэгсэл интернетээр дамжин мэдээлэл солилцон, ажил үүргийг гүйцэтгэх болсонтой холбоотой. Эдгээр төхөөрөмжүүдийн хүчин чадал өдрөөс өдөрт нэмэгдэн програм хангамжийн хэрэглэгч талын хэсгийг илүү том, бие даан ажиллах боломжийг бүрдүүлсэн. Ингэснээр сервер талын ажлын ачааллыг буулгах, сервер хэрэглэгчдийн хооронд солилцох мэдээллийг хэмжээ багасах, програмыг ашиглахад энгийн болох гээд олон давуу гарч ирсэн. Хэрэглэгч талын програмын үндсэн хэл бол өнөөгийн байдлаар javascript хэл бөгөөд интернетэд суурилсан програм боловсруулагчдын заавал сурч эзэмшсэн байх програмчлалын хэл тул сайтад VueJs фреймворкийн хичээлүүдийг цувралаар оруулж байгаа билээ. Хичээлээр VueJs -ийн директивээр төрөл бүрийн элементүүдийн жагсаалт үүсгэхийг сурна.

  Нээгдсэн тоо: 1486 Төлбөртэй

Роутерийг тохируулах хичээлээр төсөлд Home, Cars хуудсуудыг үүсгэн чиглүүлэгчийг тохируулан бүртгүүлсэн хэдий ч хуудас хооронд шилжихдээ хаягийн мөрөнд шууд бичин өгч байгаа. Иймээс хуудас хоорондын шилжилтийг цэс үүсгэн түүгээр дамжуулан хийе. Та Формын шалгалтын бэлтгэл хичээлийг үзсэн бол төсөлд Bootstrap -ийг суулгасан гэдгийг мэдэж байгаа.

  Нээгдсэн тоо: 1806 Бүртгүүлэх

Навигацийг /чиглүүлэгч/ үүсгэх хичээлээр үүсгэсэн цэснүүдээс шилжилт хийхэд сүүлд сонгогдсон цэс аль нь болохыг мэдэхэд хүндрэлтэй байгаа. Иймээс хуудасны идэвхитэй холбоосыг тэмдэглэх классыг хэрхэн оруулан ирэхийг авч үзье. Bootstrap -д сонгогодсон цэсийг тэмдэглэх active гэсэн класс байдгийг цэснүүдийн аль нэгэнд

        <ul class="navbar-nav">
          <li class="nav-item">
            <router-link class="nav-link" to="/">Home</router-link>
          </li>
          <li class="nav-item active">
            <router-link class="nav-link" :to="'/cars'">Cars</router-link>
          </li>
        </ul>

тавин өгөөд хуудсаа хөтөч дээр нээвэл

  Нээгдсэн тоо: 1453 Нийтийн

Хэрэглэгч талын хуудасны боловсруулалтад javascript дэвшилтэд буюу реактив фреймворкуудыг ашиглах нь улам өргөн болж байгаа тул ойрын жилүүдэд энэ чиглэлийн програм зохиогчдын эрэлт өндөр болох нь гарцаагүй. Иймээс програмчлалын мэрэгжлээр суралцаж байгаа болоод ажиллаж буй залуучууд Angular, React, Vue зэрэг фреймворкуудын ажиллагааг судлан суралцахыг зөвлөе. Фреймворкуудийн ажиллагаанууд өөр өөрийн онцлогтой хэдий ч ерөнхий зарчим бараг ижил тул аль нэгийг нь сурсан байхад бусдыг нь амархан сурна. VueJs -ийн бусдаасаа ялгарах онцлог гэвэл суурь пакет жижигхэн, суралцахад хөнгөнд оршино. Энэ нь фреймворкийн функционал муу гэсэн үг биш гэдгийг сануулъя.VueJs -ээр хамгийн өндөр шаардлага тавьдаг хэрэглэгчийн хэрэгцээг ч хангах програмыг төвөггүй боловсруулж чадна.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 399

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 495

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 473

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 547

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 610

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 605

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 759

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 917

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 895

 
Энэ долоо хоногт

олон гишүүнтийн язгуурууд x1, x2, x3 (x1<x2<x3) бол
1.
2. x1, x2, x3 арифметик прогрес үүсгэх бол
3. Уул прогрессын ялгавар
4.

Нээгдсэн тоо : 1358

 

sin90 -ийг олно уу.

Жич: Хатуу самар даа. Сурагчид барна гэхэд хүнд болов уу. ЕБС-ийн хүрээний аргаар л бодолтыг хийж байгаа тул бодолтыг харвал гайгүй ч юм шиг санагдаж магадгүй гоё бодлого.

Нээгдсэн тоо : 598

 

тэгшитгэлийг бод.

Жич: Бодох арга орж ирж байна уу. Найз нөхөд, багштайгаа хамжаад үзээрэй. Иймэрхүү бодлогууд сэтгэлгээг хөгжүүлэх, арга техникт суралцахад тустай. 

Нээгдсэн тоо : 827