iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
自我挑戰組

從零開始Vue(View)系列 第 6

[Day6]基礎綁定及v-bind指令

  • 分享至 

  • xImage
  •  

資料模型及文字顯示
當Vue的實體被建立時,會初始化資料模型,並監聽裡面資料的變化,如果資料模型裡的資料被更改,網頁中所有和資料模型有關的地方(綁定)都會被重新渲染。
所以使用Vue創建網頁時,需要先建立資料模型。在第一支Vue程式裡可以看到這個部分,這邊就是資料模型。

data:function() {
     return {
       message:'Hello World'
     }
},

資料綁定
完成資料模型建立後,需要綁定資料,因為我們希望修改資料模型裡的內容,網頁上的內容也要同步修改到,這個時候就需要綁定資料。
以第一支Vue程式來講解:

<!DOCTYPE html>
<html>
    <head>
        <title>Hello World</title>
    </head>

    <body>
        <div id="app">
            {{message}}
        </div>
        <script src="https://cdn.jsdelivr.net/npm/vue@3.2.33/dist/vue.global.js">
        </script>
        <script>
            var app =Vue.createApp({
                data:function() {
                    return {
                        message:'Hello World'
                    }
                },
            });
            app.mount('#app');
        </script>
    </body>
</html>

先在data裡建立message屬性,它的值為Hello World,再到HTML裡撰寫綁定的程式碼(<div></div>裡),使用{{}}顯示想渲染的資料。
執行流程是data中的message屬性經過{{}}語法綁定後,執行後在網頁上會顯示message屬性的值(Hello World)。

HTML Element屬性資料綁定
之前講的綁定,就只有針對文字的部分做綁定,但在HTML裡有屬性,文字也需綁定決定位置。
HTML Element屬性像是表單元件(文字框)、樣式(顏色框、底線...)、class或是圖片等物件,需要透過綁定決定文字要顯示的位置。
以文字框舉例:

<!DOCTYPE html>
<html>
<body>
    <div id="app">
        <!-- 文字方塊 - 使用 v-bind 綁定至 value -->
        <input type="text" v-bind:value="value1"><br/>
        <!-- 文字方塊 - 使用 v-bind 縮寫綁定至 value -->
        <input type="text" :value="value2">
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@3.2.33/dist/vue.global.js"></script>
    
    <script>
        var app =Vue.createApp({
                data:function() {
                    return {
                        value1:'Hello World',
                        value2:'Hello Vue',
                    }
                },
            });
            app.mount('#app');
    </script>
</body>
</html>

第九行HTML裡的原程式碼為:<input type=”text” value=”{{textValue}}”>
這個時候就可以用Vue的v-bind語法改寫成:
<input type=”text” v-bind:value=”textValue”>或簡寫成
<input type=”text”:value=”textValue”>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230910/20161195GvbYECPVz5.png

v-bind語法舉例:

  • 文字框:<input type=”text” v-bind:value=”textValue”>
  • 樣式:<div v-bind:style=”customStyle”>
  • Class:<div v-bind:class=”className”>

上一篇
[Day5]Vue.js生命週期
下一篇
[Day7]v-for指令
系列文
從零開始Vue(View)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言