πŸ‘¨β€πŸ’»
Hamin TIL
  • Today I Learned πŸ§‘πŸ»β€πŸ’»
  • 회고
  • git
    • git_basics
      • Git 101
      • Git branch
      • Git_ignore
    • Git Book
    • μš°μ•„ν•œν˜•μ œλ“€
    • pull_request
  • db
    • DA
      • λ°μ΄ν„°ν‘œμ€€ν™”
      • 데이터_μš”κ±΄λΆ„μ„
      • μ „μ‚¬μ•„ν‚€ν…μ²˜_이해
      • 데이터λͺ¨λΈλ§
    • SQL
      • SQLκΈ°λ³Έλ°ν™œμš©
        • SQLν™œμš©
          • μ ˆμ°¨ν˜•SQL
          • κ³„μΈ΅ν˜•μ§ˆμ˜μ™€μ…€ν”„μ‘°μΈ
          • DCL
          • κ·Έλ£Ήν•¨μˆ˜
          • μœˆλ„μš°ν•¨μˆ˜
          • ν‘œμ€€μ‘°μΈ
          • μ§‘ν•©μ—°μ‚°μž
          • μ„œλΈŒμΏΌλ¦¬
        • SQLκ³ κΈ‰ν™œμš©λ°νŠœλ‹
          • μ˜΅ν‹°λ§ˆμ΄μ €μ™€μ‹€ν–‰κ³„νš
          • μ‘°μΈμˆ˜ν–‰μ›λ¦¬
          • 인덱슀기본
        • SQLκΈ°λ³Έ
          • ν•¨μˆ˜
          • κ΄€κ³„ν˜•λ°μ΄ν„°λ² μ΄μŠ€κ°œμš”
          • GROUPBY,HAVING절
          • DDL
          • 쑰인
          • ORDERBY절
          • DML
          • WHERE절
          • TCL
      • 데이터λͺ¨λΈλ§μ˜μ΄ν•΄
        • 데이터λͺ¨λΈκ³Όμ„±λŠ₯
          • μ •κ·œν™”μ˜ μ„±λŠ₯
          • λ°μ΄ν„°λ² μ΄μŠ€κ΅¬μ‘°μ™€μ„±λŠ₯
          • λΆ„μ‚°λ°μ΄ν„°λ² μ΄μŠ€μ™€μ„±λŠ₯
          • λŒ€λŸ‰ 데이터에 λ”°λ₯Έ μ„±λŠ₯
          • λ°˜μ •κ·œν™”μ™€ μ„±λŠ₯
          • μ„±λŠ₯데이터λͺ¨λΈλ§μ˜ κ°œμš”
        • 데이터λͺ¨λΈλ§μ˜μ΄ν•΄
          • μ‹λ³„μž
          • 속성
          • 관계
          • μ—”ν„°ν‹°
          • 데이터 λͺ¨λΈμ˜ 이해
    • DB
  • trouble
    • libomp
    • After macOS update, git command
    • system
  • algorithm
    • BOJ
      • ν‰λ²”ν•œ λ°°λ‚­
      • 17825-μ£Όμ‚¬μœ„μœ·λ†€μ΄
      • 14888-μ—°μ‚°μžλΌμ›Œλ„£κΈ°
      • 14503-λ‘œλ΄‡μ²­μ†ŒκΈ°
      • 10157
      • 14502-μ—°κ΅¬μ†Œ
      • 18428-κ°μ‹œν”Όν•˜κΈ°
      • 14501
      • 18405-κ²½μŸμ μ „μ—Ό
      • 14499-μ£Όμ‚¬μœ„κ΅΄λ¦¬κΈ°
      • 16236-아기상어
      • 15686-μΉ˜ν‚¨λ°°λ‹¬
      • 19237-μ–΄λ₯Έμƒμ–΄
      • 16234-인ꡬ이동
      • 19236-μ²­μ†Œλ…„μƒμ–΄
      • 1339-λ‹¨μ–΄μˆ˜ν•™
      • 리λͺ¨μ½˜
      • 18353 - λ³‘μ‚¬λ°°μΉ˜ν•˜κΈ°
      • 18352-νŠΉμ •κ±°λ¦¬μ˜λ„μ‹œμ°ΎκΈ°
      • 12100-2048
      • N-Queen
      • 3190-λ±€
      • 11724
    • programmers
      • μ˜μ–΄λλ§μž‡κΈ°
      • κΈ°λ‘₯κ³Ό 보
      • H - index
      • μ •μˆ˜μ‚Όκ°ν˜•
      • 2018 KAKAO BLIND RECRUITMENT - μ••μΆ•
      • μ‚Όκ°λ‹¬νŒ½μ΄
      • κ±°μŠ€λ¦„λˆ
      • [1μ°¨] μ…”ν‹€λ²„μŠ€
    • data_structure
      • Queue
      • Graph
      • Stack
      • Hash table
    • implementation
      • dynamic_programming
      • sort
      • Least common multiple
      • dfs
      • dijkstra
      • bfs
      • binary_search
    • aps
      • notes
    • modules
  • python
    • requirements.txt
    • Jupyter notebook
    • 00_λ“€μ–΄κ°€κΈ° 전에
    • Python Virtual Environment
    • Python Syntax
  • django
    • Class Based View in Django
    • Model in Django
    • URL Name
    • Form and ModelForm
    • Authentication
    • Tips & Tricks
    • Optimization
    • Request and Response Objects
    • Templates
    • Variable Routing & DTL
    • Django REST API with JSON web token (JWT)
    • Intro to Django
    • Django REST Framework
    • Wrap-up
    • Image Upload
  • javascript
    • Ajax (Asynchronous Javascript And XML)
    • Document Object Model
    • Java Script 101
    • ES (ECMAscript)
  • java
    • Java 101
  • aws
    • beginning_cloud_computing_with_aws
      • 02 AWS μ£Όμš” μ„œλΉ„μŠ€ μ΄ν•΄ν•˜κΈ°
      • 01 μ•„λ§ˆμ‘΄ μ›Ή μ„œλΉ„μŠ€ Cloud κ°œμš”
  • programming
    • Communication
    • CS_μš©μ–΄μ‚¬μ „
  • vue.js
    • 01_Vue.js_Intro
  • data_science
    • 01_λ°μ΄ν„°μ—μ„œμΈμ‚¬μ΄νŠΈλ°œκ²¬ν•˜κΈ°
    • pandas
    • 04_데이터뢄λ₯˜λͺ¨λΈ
    • 02_ν…μŠ€νŠΈλ§ˆμ΄λ‹μ²«κ±ΈμŒ
    • 05_μ’…ν•©μ˜ˆμ œ
    • 03_미래λ₯Όμ˜ˆμΈ‘ν•˜λŠ”λ°μ΄ν„°λΆ„μ„
    • Statistics
      • λͺ¨μˆ˜μ™€ μΆ”μ •λŸ‰
    • ν†΅κ³„ν•™λ…ΈνŠΈ
  • linux
    • Linux Commands
  • ide
    • VScode
    • Pycharm
  • html,css
    • HTML 101
    • CSS 101
  • colab
    • colab_101
  • μ˜μ‚¬κ²°μ •λ‚˜λ¬΄λ°λͺ¨ν˜•비ꡐ
Powered by GitBook
On this page
  • 01_Vue.js_Intro
  • Start
  • Intro

Was this helpful?

  1. vue.js

01_Vue.js_Intro

01_Vue.js_Intro

Start

<script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>

Intro

  • el ( Vue 의 μΈμŠ€ν„΄μŠ€λ‘œ μ–΄λŠ μš”μ†Œμ— λ§ˆμš΄νŠΈν• μ§€ κ²°μ • )

    <body>
        <div id='app' >  <!-- ν•˜λ‚˜μ˜ λΆ€λͺ¨μš”μ†Œλ₯Ό κ°–μŒ -->
    
        </div>
    
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
    
        <script>
            // el 은 Vue μΈμŠ€ν„΄μŠ€μ˜ μ†μ„±μœΌλ‘œ μ–΄λ–€ μš”μ†Œμ— λ§ˆμš΄νŠΈν• μ§€ κ²°μ •
             const app = new Vue ({
                el: '#app', 
             })
             console.log(app) => Vue
             console.log(app.$el) => <div id="app"></div>
        </script>
    
    </body>
  • data ( 호좜 μ‹œ, app.data.message ( X ), app.message ( O ) )

    <body>
        <div id="app">
        </div>
    
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
        <script>
            const app = new Vue({
                el: '#app', //μ–΄λ–€ μš”μ†Œμ— λ§ˆμš΄νŠΈν• μ§€
                data: {    // MVVM => Model 이닀. data κ°€ 핡심!
                    message: 'Hello Vue'
                },
            })
            console.log(app.message) => Hello Vue
    
        </script>
    </body>
  • interpolation ( ) 보간법

    <body>
        <div id="app">
            {{ message }} 
        </div>
    
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
        <script>
            const app = new Vue ({
                el: '#app',
                data: {
                    message : 'Hello Vue',
                }
            })
    
        </script> 
    
    </body>
  • v-text / if / if-elseif-else / for / bind ( v- μ ‘λ‘μ‚¬λ‘œ μ‹œμž‘ν•˜λŠ” λ””λ ‰ν‹°λΈŒ ( λͺ…λ Ήν•˜λŠ” 것 ) )

    <body>
    
        <div id="app">
            text, if, if-elseif-else, for κΉŒμ§€λŠ” μ‰¬μš°λ‹ˆ 패슀
                    <a href="{{ googleUrl }}">Bad Google link</a>
            <!-- v-bind: ν‘œμ€€ HTML 속성과 Vue μΈμŠ€ν„΄μŠ€λ₯Ό 연동할 λ•Œ. (+a) -->
            <a v-bind:href="googleUrl">Good Google link</a>
            <a href="{{ naverUrl }}">Bad Naver link</a>
            <a v-bind:href="naverUrl">Good Naver link</a>
            <img v-bind:src="randomImageUrl" v-bind:alt="altText">
        </div>
    
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
        <script>
            const app = new Vue ({
                el: '#app',
                data: {
                                    googleUrl: '<https://google.com>',
                    naverUrl: '<https://naver.com>',
                    randomImageUrl: '<https://picsum.photos/200>',
                }})
        </script>
    </body>

v-bind: : : 으둜 μ“Έ 수 μžˆλ‹€.

  • method / v-on

    <div id="app">
            {{ message }}
        </div>
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
        <script>
            const app = new Vue({
                el: '#app',
                data: { // μΈμŠ€ν„΄μŠ€
                    message: 'Hello Vue'
                },
                methods: { // ν•¨μˆ˜λ“€μ˜ μ§‘ν•©, dataλ₯Ό κ°€μ§€κ³  움직일 수 있게 됨
                    alertWarning: function () {
                        alert('WARNING')
                    },
                    alertMessage () { // Syntactic Sugar: μœ„μ™€ μ•„λž˜ μ™„μ „νžˆ κ°™μŒ
                        alert(this.message)
                    },
                    changeMessage () {
                        this.message = 'CHANGED MESSAGE'
                    },
                }
            })
        </script>
    </body>

    ```jsx

        <button v-on:click="alertWarning">Alert Warning</button>
        <button v-on:click="alertMessage">Alert Message</button>
        <button v-on:click="changeMessage">Change Message</button>
        <hr>
        <input @keyup.enter="onInputChange" type="text" name="" id="">
    </div>
    
    <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue'
            },
            methods: {
                alertWarning: function () {
                    alert('WARNING')
                },
                alertMessage () {
                    alert(this.message)
                },
                changeMessage() {
                    this.message = 'CHANGED MESSAGE'
                },
                onInputChange(event) {
                    // if (event.key == "Enter") {
                        this.message = event.target.value
                    },
    
            }
        })
    
    </script>

</body>

`v-on:`  : `@` 으둜 μ“Έ 수 μžˆλ‹€.

- v-model

  ```jsx
  <body>
      <div id="app">
          <h1>{{ message }}</h1>
          <!-- μ‚¬μš©μž μž…λ ₯ <=> data λ₯Ό μ™„μ „νžˆ 동기화 μ‹œν‚€κ³  μ‹Άλ‹€ -->
          <!-- v-model => input, select, textarea 에 μ–‘λ°©ν–₯ 바인딩 -->

          <hr>
          <!-- 단방ν–₯ 바인딩 (input => data) -->
          1way:
          <input v-on:keyup="onInputChange" type="text">
          <hr>
          <!-- μ–‘λ°©ν–₯ 바인딩 (input <=> data) -->
          2way:
          <input v-on:keyup="onInputChange" type="text" :value="message">
  value κ°€ ν‘œμ€€μ†μ„±μ΄κΈ° λ•Œλ¬Έμ— v-bind ν•΄μ€˜μ•Όν•¨
          <hr>
          <!-- v-model -->
          v-model/2way:
          <input v-model="message" type="text">
      </div>
      <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>

      <script>
          const app = new Vue({
              el: "#app",
              data: {
                  message: 'hi',
              },
              methods: {
                  onInputChange(event) {
                      this.message = event.target.value
                  }
              }
          })
      </script>

  </body>
  • v-show

    <body>
        <div id="app">
            <button @click="changeF" >changeF</button>
            <!-- v-if λŠ” 평가(t/f)κ°€ 자주 λ°”λ€Œμ§€ μ•Šμ„λ•Œ μœ λ¦¬ν•˜λ‹€ => 초기 μ½”μŠ€νŠΈκ°€ 적닀. -->
            <p v-if="t">
                This is v-if
            </p>
    
            <p v-if="f">
                This is v-if with false
            </p>
    
            <!-- v-show λŠ” 평가(t/f) κ°€ 자주 λ°”λ€” λ•Œ μœ λ¦¬ν•˜λ‹€ => ν† κΈ€ μ½”μŠ€νŠΈκ°€ 적닀 -->
            <p v-show="t">
                This is v-show with true
            </p>
    
            <p v-show="f">
                This is v-show with false
            </p>
    
        </div>
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
        <script>
            const app = new Vue({
                el: "#app",
                data: {
                    t: true,
                    f: false,
                },
                methods: {
                    changeF () {
                        this.f = !this.f
                    }
                }
            })
        </script>
    
    </body>
  • lodash

    <body>
        <div id="app">
            <button @click="getLuckySix">GET LUCKY 6</button>
            <ul >
                <li v-for="number in myNumbers">
                    {{ number }}
                </li>
            </ul>
        </div>
        <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
        <script src="<https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js>"></script>
        <script>
            const app = new Vue({
                el: "#app",
                // [1..45] μ—μ„œ 6개λ₯Ό λžœλ€ν•˜κ²Œ λ½‘λŠ”λ‹€.
                data: {
                    allNumbers: _.range(1,46),
                    myNumbers: []
                },
                methods: {
                    getLuckySix() {
                        this.myNumbers = _.sampleSize(this.allNumbers, 6)
                        // this.myNumbers.sort((a,b) => a-b)
                        this.myNumbers.sort(function(a,b){
                            return a-b
                        })
                    }
                },
            })
        </script>
    </body>
  • computed

    μ–΄λ–€ ν•¨μˆ˜λ“€μ„ computed 에 μ •μ˜ν•˜λ‚˜μš”? β†’ Data λ₯Ό Create Update Delete ν•˜μ§€ μ•Šκ³ , Read(return) ν•˜λŠ” ν•¨μˆ˜λ“€! (SQL WHERE)

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>VueJS</title>
    </head>
    <body>
      <div id="app">
        <h1>Poor people</h1>
        {{ bankruptPeople }}
      </div>
      <script src="<https://cdn.jsdelivr.net/npm/vue/dist/vue.js>"></script>
      <script>
        const app = new Vue({
          el: '#app',
    
          data: {
            accounts: [
              { name: 'neo', balance: 500, isBankrupt: true },
              { name: 'tak', balance: 700, isBankrupt: false },
              { name: 'john', balance: 350, isBankrupt: false },
              { name: 'justin', balance: 200, isBankrupt: true },
            ],
          },
    
          methods: {},
    
          /*
            μ–΄λ–€ ν•¨μˆ˜λ“€μ„ computed 에 μ •μ˜ν•˜λ‚˜μš”?
            Data λ₯Ό Create Update Delete ν•˜μ§€ μ•Šκ³ , 
            Read(return) ν•˜λŠ” ν•¨μˆ˜λ“€! (SQL WHERE)
          */ 
          computed: {
            // ν•¨μˆ˜μ§€λ§Œ, 이름은 λͺ…μ‚¬ν˜•μœΌλ‘œ μ§“λŠ”λ‹€.
            numOfAccounts: function() {
              return accounts.length
            },
    
            bankruptPeople: function() {
              // filter λŠ” μƒˆλ‘œμš΄ 배열을 λ¦¬ν„΄ν•œλ‹€.
              const newArr = this.accounts.filter((account) => {
                return account.isBankrupt
              })
              // filter κ°€ λ¦¬ν„΄ν•œ 배열을 리턴
              return newArr
            },
    
          }
        })
    
      </script>
    </body>
    </html>
Previousvue.jsNextdata_science

Last updated 4 years ago

Was this helpful?