λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“  archive

[Vue.js] $el μ˜΅μ…˜μ€ λ¬΄μ—‡μΌκΉŒ?

by HandHand 2022. 3. 1.

πŸ“Œ el μ˜΅μ…˜μ΄λž€?

Vue 라이프 사이클 κ³΅λΆ€ν•˜λ‹€κ°€ μƒμ†Œν•œ el μ˜΅μ…˜μ΄ νŠ€μ–΄λ‚˜μ™€μ„œ ν•œλ²ˆ μ°Ύμ•„λ΄€μŠ΅λ‹ˆλ‹€.

el μ˜΅μ…˜μ€ Vue μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ œκ³΅ν•˜λŠ” μ˜΅μ…˜μœΌλ‘œ λ§ˆμš΄νŒ… 포인트λ₯Ό κ²°μ • ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

단 el μ˜΅μ…˜μ€ new λ₯Ό ν†΅ν•œ Vue μΈμŠ€ν„΄μŠ€ μƒμ„±μ‹œμ—λ§Œ μœ νš¨ν•©λ‹ˆλ‹€.

 

πŸ“Œ el μ˜΅μ…˜ μ‚¬μš© μ˜ˆμ‹œ

<html>
  <head>
    <title>vue el example</title>
    <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
  </head>
  <body>
      <p id="mess">{{message}}</p>

        <script>

          new Vue({
            el:'#mess',
            data: {
              message:'an element can be selected by id with the # symbol'
            }
          });

      </script>
  </body>
</html>

el μ—λŠ” querySelector 와 같이 지정할 수 있으며 μ§€μ •λœ μš”μ†Œμ— Vue μ»΄ν¬λ„ŒνŠΈκ°€ λŒ€μ²΄λ©λ‹ˆλ‹€.

λ§Œμ•½ template μ˜΅μ…˜μ΄λ‚˜ render ν•¨μˆ˜κ°€ μ—†λ‹€λ©΄ μ§€μ •λœ DOM μš”μ†Œ λ‚΄λΆ€ λ‚΄μš©μ΄ λ Œλ”λ§ λ©λ‹ˆλ‹€.

μœ„ μ˜ˆμ‹œμ˜ 경우 message λ‚΄μš©μ΄ p νƒœκ·Έμ— λ‘˜λŸ¬μ‹Έμ—¬ λ Œλ”λ§ λ˜κ² λ„€μš”.

 

πŸ“Œ $mount λ©”μ„œλ“œλž€?

el μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λŠ” λŒ€μ‹  $mount μ˜΅μ…˜μ„ μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

 

<html>
  <head>
    <title>vue el example</title>
    <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
  </head>
  <body>
      <div id="foo">

        <script>

            new Vue({
                 template:'<p>bar</p>',
                 beforeCreate: function() {
             console.log('beforeCreate')
           },

           created: function(){
             console.log('created')
             setTimeout(() => {
               this.$mount('#foo')
             }, 5000)
                 },

           beforeMount: function() {
             console.log('beforeMount')
           },

           mounted: function() {
             console.log('mounted')
           }
              })

      </script>
  </body>
</html>

 

λ§Œμ•½ νŠΉμ •ν•œ λͺ©μ μœΌλ‘œ 마운트 μ‹œμ μ„ 늦좜경우 $mount λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ»΄ν¬λ„ŒνŠΈμ— el μ˜΅μ…˜μ„ λͺ…μ‹œν•˜μ§€ μ•ŠμœΌλ©΄ 컴파일이 μ€‘λ‹¨λ˜κΈ° λ•Œλ¬Έμ— $mount λ©”μ„œλ“œλ₯Ό ν†΅ν•΄μ„œ

직접 마운트 포인트λ₯Ό 지정해주어 컴파일이 진행될 수 μžˆλ„λ‘ ν•΄μ•Όν•©λ‹ˆλ‹€.

μœ„ μ˜ˆμ œμ—μ„œλŠ” 5μ΄ˆν›„μ— 마운트 ν¬μΈνŠΈκ°€ μ§€μ •λ˜κ³ , 라이프사이클에 따라 $mount κ°€ 호좜된 이후

beforeMount 와 mounted κ°€ ν˜ΈμΆœλ©λ‹ˆλ‹€.

 

πŸ“Œ 참고자료

vue el option for selecting a vuejs DOM mount point

API - Vue.js

λ°˜μ‘ν˜•

πŸ’¬ λŒ“κΈ€