Vue 變量,成員,屬性監聽


Vue變量

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>變量</title>
</head>
<body>
    <div id="app">
        <p>{{ msg }}</p>
        <p>{{ info }}</p>
        <h3>{{ msg }}</h3>
    </div>

    <div id="main">
        <p>{{ msg }}</p>
        <p>{{ info }}</p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>

    // 實例成員中的data是為vue頁面模板通過數據變量的
    let app = new Vue({
        el: '#app',
        data: {
            msg: 'message',
            info: 'vue變量信息'
        }
    });

    let main = new Vue({
        el: '#main',
        data: {
            msg: 'msg',
            info: 'info'
        }
    });

    console.log(app.info);
    console.log(main.info);

    // 創建vue實例(new Vue)傳進去的字典(對象)的key,稱之為vue實例成員(變量)
    // 訪問實例成員,用 vue實例.$成員名, eg:app.$el
    console.log(app.$el);
    console.log(app.$data);

    console.log(app.$data.info);
</script>
</html>

分隔符成員

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>分隔符</title>
</head>
<body>
    <div id="app">
        <p>{{ num }}</p>
        <!--<p>{[ num ]}</p>-->
        <p>{ num ]}</p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            num: 100
        },
        // 用來修改插值表達式符號
        // delimiters: ['{[', ']}'],
        delimiters: ['{', ']}'],
    })
</script>
</html>

計算屬性成員

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="app">
        <input type="text" v-model="v1">
        +
        <input type="text" v-model="v2">
        =
        <button>{{ res }}</button>

    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            v1: '',
            v2: '',
            // res: '結果',
        },
        // 1、computed中定義的是方法屬性,data中定義的也是屬性,所以不需要重復定義(省略data中的)
        // 2、方法屬性的值來源於綁定的方法的返回值
        // 3、方法屬性必須在頁面中渲染后,綁定的方法才會被啟用(調用)
        // 4、方法中出現的所有變量都會被監聽,任何變量發生值更新都會調用一次綁定的方法,重新更新一下方法屬性的值
        // 5、方法屬性值不能手動設置,必須通過綁定的方法進行設置
        computed: {
            res () {
                console.log('該方法被調用了');
                return this.v1 && this.v2 ? +this.v1 + +this.v2 : '結果';
            }
        }
    })
</script>
<script>
    console.log(1 + '2');
    console.log(1 - '2');
    console.log(+'2');
</script>
</html>

屬性監聽

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>屬性的監聽</title>
</head>
<body>
    <div id="app">
        <p>
            姓名:<input type="text" v-model="full_name">
        </p>
        <p>
            姓:<span>{{ first_name }}</span>
        </p>
        <p>
            名:<span>{{ last_name }}</span>
        </p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            full_name: '',
            first_name: '',
            last_name: '',
        },
        watch: {
            // 1、watch中給已有的屬性設置監聽方法
            // 2、監聽的屬性值一旦發生更新,就會調用監聽方法,在方法中完成相應邏輯
            // 3、監聽方法不需要返回值(返回值只有主動結束方法的作用)
            full_name() {
                if (this.full_name.length === 2) {
                    k_v_arr = this.full_name.split('');
                    this.first_name = k_v_arr[0];
                    this.last_name = k_v_arr[1];
                }
            }
        }
    })
</script>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM