Компонентын нэр

Компонентыг бүртгүүлэх хичээлд компонентийн нэрийг 'my-counter' гэж мөр төрлөөр бичин өгсөн. Энэ нь зарим тохиолдолд асуудал үүсгэдэг. Жишээ нь та төсlлийн кодыг бичиж буй засварлагчид кодыг цэвэр байлгах ямар нэгэн хэрэгсэл /linter/ ашиглаж байвал нэрэнд хашилтыг хэрэглэвэл төслийн хэвээс хасагддаг тул үүнийг ашиглахгүй байх нь дээр. Иймээс VueJs -д компонентийн нэрийг үүсгэх өөр аргачлал байдаг. Компонентийн нэрийг өгөхдөө

            new Vue({
                el: '#app',
                components: {
                    'my-counter': component
                }
            });

хашилтанд my-counter гэж html кодод ашиглах тегийн нэрийг өгсөн байгаа.

VueJshtml кодод ашиглах тегийн нэрийг арай өөрөөр үүсгэх арга байдгийг Компонентыг бүртгүүлэх хичээлийн жишээний div id="app1" элементэд Vue програмын инициализац хийхдээ my-counter компонентийг

    <body>
        <div id="app">
            <my-counter v-for="c in 2"></my-counter>
        </div>
        <hr>
        <div id="app1">
            <my-counter></my-counter>
        </div>        
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var component = {
                template: `
                    <div style="border: 1px solid green; padding: 10px">
                        <h2>Тоолуур: {{ counter }}</h2>
                        <button @click="add">Тоолуурыг нэмэх</button>
                    </div>                
                `,
                data: function() {
                    return {
                        counter: 0
                    }
                },
                methods: {
                    add: function() {
                        this.counter++
                    }
                }
            }
            
            new Vue({
                el: '#app',
                components: {
                    'my-counter': component
                }
            });

            new Vue({
                el: '#app1',
                components: {
                    myCounter: component
                }
            })            
        </script>        
    </body>

бүртгүүлсэн жишээнээс харцгаая. app1 айдитай divVue -гийн хувийн инициализац хийхдээ түүний тохиргооны обьектын components талбарт компонентийг бүртгүүлсэн. Гэхдээ энд компонентийн нэрийг хашилтанд мөр хэлбэрээр биш myCounter гэж тэмээ /camelCase/ хэвийг ашиглан бичсэн. Үүнийг Vue фреймворк my-counter тегийн нэртэй ижилхэн болгон хөрвүүлнэ. Иймээс html кодод тегийг <my-counter></my-counter> гэж бичсэнг өөрчлөхгүйгээр ашиглана. Хуудсыг хөтөч дээр нээвэл

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

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

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

Хичээлээр төслийн үндсэн хуудсыг зохиоё. Эхлээд төслийн src хавтаст өөрийн төлөв бүхий төслийн хэмжээнд суурь болох компонентуудийг хадгалах containers хавтасыг үүсгэе. Үүний зэрэгцээ функционал компонентуудийг хадгалах components хавтасыг бас үүсгэн өгье. containers хавтаст Quiz хавтасыг үүсгээд түүнд

Классийн компонентийн код

import React, { Component } from "react";

class Quiz extends Component {
  render() {
    return (
      <div>
        <h3>Сорилго</h3>
      </div>
    );
  }
}

export default Quiz;

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

react 16 гаас дээш хувилбарт бий болсон кодод үүссэн алдаануудыг илүү эвтэйхэн боловсруулахад зориулагдсан ErrorBoundary амьдралын шинэ циклийн талаар судлая. ErrorBoundary аргыг туршихын тулд төслийн src хавтас ErrorBoundary хавтаст үүсгээд

import React from 'react'

export default class ErrorBoundary extends React.Component {
  state = {
    hasError: false
  }

  componentDidCatch(error, info) {
    this.setState({ hasError: true })
  }

  render() {
    if (this.state.hasError) {
      return <h2 style={{ color: 'red' }}>Алдаа гарлаа</h2>
    }
    return this.props.children
  }
}

код бүхий шинэ ErrorBoundary компонентийг үүсгэе.

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

Хичээлээр сорилгын үр дүнгийн хэсгийн боловсруулалтыг хийцгээе. Одоогоор сорилгын асуултууд дуусахад бид консолд Finished текстийг үзүүлж байгааг өөрчлөхийн тулд Quiz компонентод false анхдагч утгатай isFinished төлвийг

const [isFinished, setIsFinished] = useState(false)

нэмэн өгөөд onAnswerClickHandler аргаас сорилго дуусанг шалгах isQuizFinished функцээс true утга буцаавал Finished текстийг үзүүлж байсныг

        if (isQuizFinished()) {
          setIsFinished(true)
        } else {
          ...
        }

гэж өөрчилье. Өөрөөр хэлбэл сорилго дуусан isQuizFinished функцээс true утга буцаавал setIsFinished функцээр isFinished төлвийг true утгатай болгоно.

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

VueJs -ийн хуудсанд үйл явц нэмэх ажиллагааны дараагийн боломж бол үйл явцын модификатор буюу тохируулагч юм. Орчуулга сайнгүй болсон байх талтай тул модификатор гэдгээр нь ойлговол зүгээр. Хичээлээр модификаторууд ямар хэрэгтэй, юу хийдэг талаар авч үзье. Жишээ нь E-surgalt сайтад шилжих холбоосыг агуулсан

    <body>
        <div id="app">
            <h2>
                <a href="https:" target="_blank">E-surgalt</a>
            </h2>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            ...
        </script>
    </body>

хуудас байлаа гэж бодъё. Хөтөч дээр хуудсыг нээгээд холбоос дээр дарвал E-surgalt сайтыг шинэ цонхонд нээнэ.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

Тэмцээнд 16 шатарчин оролцсон. Нэгийн давааны хуваарийн хичнээн хувилбар байж болох вэ? / Хуьаарьт дор хаяж нэг өрөгт тоглох хүмүүс нь ялгаатай бол хувилбар гэж тооцно. Тоглох өнгө, ширээний дугаарыг тооцохгүй/

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

 

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

 

prob02_187_01 илэрхийллийг хялбарчил.

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