Vue.js 학습 3일차-동적 귀속 스타일 및 계산 속성

21701 단어

Vue.js 학습 3일차-동적 귀속 스타일 및 계산 속성


오늘은 정월 대보름입니다. 먼저 정월 대보름을 즐겁게 보내고 전선에 있는 의료진의 명절도 즐겁게 보내세요. 전염병이 빨리 지나가길 바랍니다. 어제 배운 동적 귀속class 속성에 이어 오늘은 동적 귀속스타일 속성입니다. 마찬가지로 수조 문법과 대상 문법으로 나뉘는데 일반적인 수조 문법은 많이 응용되지 않아서 이해하면 됩니다.
  • 대상 문법
  • <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <div id="container">
            <h2 v-bind:style="{fontSize:fontSize}">{{message}}</h2>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: '#container',
                data: {
                    message: 'hello',
                    fontSize: '100px'
                }
            })
        </script>
    </body>
    
    </html>
    
  • 수조문법
  • <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <div id="container">
            <h1 :style='[baseStyle , baseStyles]'>{{message}}</h1>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: '#container',
                data: {
                    message: 'hello',
                    baseStyle: { background: 'red' },
                    baseStyles: { fontSize: '20px' },
                }
            })
        </script>
    </body>
    
    </html>
    

    오늘 또 하나의 계산 속성 컴퓨터도 배웠는데 작용은methods 방법과 차이가 많지 않은 것 같다. 실제로 그것들의 차이는 있다. 컴퓨터에 set과 get 두 가지 방법이 존재하지만 우리는 일반적으로 그들을 간략하게 썼다. 그러나 이 두 가지 물건이 컴퓨터와methods의 차이가 있다는 것을 알아야 한다.컴퓨터는 사용 중 시스템에 캐시가 존재합니다. 데이터가 변하지 않았을 때 컴퓨터는 캐시에 있는 데이터를 사용하지만,methods는 그 중의 함수를 반복적으로 호출하기 때문에 이 방면에서 methods의 성능은 비교적 낮습니다.다음은 몇 가지 기본적인 예입니다: set과 get 함수:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div id="container">
            <h1>{{message}} {{finalName}}</h1>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: '#container',
                data: {
                    message: 'hello',
                    startName: 'real',
                    endName: 'cute'
                },
                computed: {
                    finalName: {
                        set: function(){
                            console.log('---');
                        },
                        get:function () { 
                            return this.startName + ' ' + this.endName; 
                        }
    
                    }
                }
            })
        </script>
    </body>
    </html>
    

    기본 사용:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div id="container">
            <h1>  {{totalPrice}}</h1>
        </div>
        <script src="./vue.js"></script>
        <script>
            const app = new Vue({
                el: '#container',
                data: {
                    books: [{id:'1000',name:'Linux ',price:100},
                            {id:'1001',name:'php ',price:110},
                            {id:'1002',name:'C ',price:120},
                            {id:'1003',name:'Java ',price:130}]
                },
                computed:{ //   
                    totalPrice:function(){
                        let price = 0;
                        for(let attr in this.books){
                            price += this.books[attr].price
                        }
                        return price; 
                    }
                }
            }) 
        </script>
    </body>
    </html>
    

    정월 대보름에 게으름을 피워서 얼마 쓰지 못했어, 헤헤!

    좋은 웹페이지 즐겨찾기