趕鴨子上架之Vue學習(一)

Vue下載及安裝
阿偉的第一個vue代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <style>
        [v-cloak]{
            display: none;
        }
    </style>
</head>
<body>
    <div id="app">
<!--        使用 v-cloak 能夠解決插值表達式的閃爍問題 -->
        <p v-cloak>+++++++++++++++{{ msg }}</p>
        <h4 v-text="msg">=============</h4>
<!--        默認 v-text 是沒有閃爍問題的,會覆蓋元素中原本的內容,但插值表達式只會替換自己的佔位符,不會把整個元素的內容清空 -->
        <div v-text="msg2"></div>
<!--        v-html 會將文本解析成html,也會覆蓋原本的內容 -->
        <div v-html="msg2"></div>
<!--        v-bind 是vue中,提供的用於綁定屬性的指令 -->
        <input type="button" value="按鈕" v-bind:title="mytitle + '123'">
<!--        v-bind 簡寫形式-->
        <input type="button" value="按鈕" :title="mytitle + '123'">
<!--        v-on:事件綁定機制 -->
        <input type="button" value="按鈕" v-on:click="show">
<!--        v-on 簡寫形式 -->
        <input type="button" value="按鈕" @click="show">
    </div>


    <script>
        var vm=new Vue({
            el:'#app',
            data:{
                msg:'歡迎學習Vue',
                msg2:'<h1>哈哈哈哈哈哈哈哈哈</h1>',
                mytitle:'這是一個自己定義的title'
            },
            methods:{//methods中定義了當前vue實例所有可用的方法
                show:function () {
                    alert('hello')
                }
            }
        })
    </script>
</body>
</html>

阿偉的第二個代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>

</head>
<body>
    <div id="app">
        <ul>
<!--            循環-->
            <li v-for="dog in dogs"> {{dog}} </li>
<!--            帶索引的循環,注意參數的順序是(value,key)-->
            <li v-for="(dog,i) in dogs">{{ dog }} 是第 {{i}} 個</li>
        </ul>
        <hr>
        <ul>
<!--            輸出1-10-->
            <li v-for="n in 10"> {{n}} </li>
<!--            輸出0-9-->
            <li v-for="n in 10"> {{n-1}} </li>
        </ul>

        <hr>

        <p>自從你打開這個頁面,已經過了 {{seconds}} 秒。</p>

        <hr>
<!--雙向數據綁定 用 v-model !!!  -->
        <input type="text" v-model="inputText">
        <p>inputText: {{ inputText }}</p>

    </div>


    <script>
        new Vue({
            el:'#app',
            data: {
                dogs: ['a','b','c','d'],
                seconds:0,
                inputText:'initial value'
                },
            created(){
                setInterval(()=>{
                    this.seconds++;
                },1000);
            }
        });
    </script>
</body>
</html>

阿偉的第三個代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>

</head>
<body>
    <div id="app">

        <input type="text" :value="inputText" value="initial value">
        <p>inputText: {{ inputText }}</p>

        <hr>

        <label><input type="radio" v-model="value" value=""></label>
        <label><input type="radio" v-model="value" value=""></label>
        <label><input type="radio" v-model="value" value=""></label>
        <p>選中的 value 值爲 {{value}}</p>

        <hr>

        <ul>
            <li v-for="number in filterPositive(numbers)"> {{ number }} </li>
        </ul>

    </div>


    <script>
        new Vue({
            el:'#app',
            data: {
                inputText:'',
                value:'一',
                numbers:[-5,0,2,-1,1,0,5]
                },
            methods:{
                //過濾掉所有負數
                filterPositive(numbers){
                    return numbers.filter((number) => number >= 0);
                }
            }
        });
    </script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章