1. 程式人生 > >Vue.js 學習筆記

Vue.js 學習筆記

  • {{}} 顯示js介面傳過來的資料
  • v-bind 繫結提示資訊
  • v-if 條件語句
  • v-for 繫結陣列資料
  • v-on 新增一個事件監聽器,通過它可以呼叫Vue例項中定義的方法
  • v-model 表單輸入和應用狀態之間的雙向繫結
  • Vue.component() 定義元件
  • v-html 用於輸出真正的html
  • v-pre 用於顯示{{}} 而不進行替換,可以跳過這個元素和它的子元素的編譯過程

雙向資料繫結

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <
title
>
Vue learn</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <input type="text" v-model="name" placeholder="name"> <h1>hello,{{name}}</h1> </div> <script src="index.js"
>
</script> </body> </html>
var app = new Vue({
    el:'#app',
    data:{
        name: ''
    }
})

可以通過app.$el 訪問該元素,Vue提供了很多的屬性和方法都可以通過$開頭

一個計時器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue learn</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> {{date | formateDate()}} </div> <script src="index.js"></script> </body> </html>
var padDate = function (value) {
    return value < 10 ? '0' + value : value;
};


var app = new Vue({
    el: '#app',
    data: {
        date:new Date()
    },
    filters:{
        formateDate:function (value) {
            var date = new Date(value);
            var year = date.getFullYear();
            var month = padDate(date.getMonth()+1);
            var day = padDate(date.getDate());
            var hours = padDate(date.getHours());
            var minuates = padDate(date.getMinutes());
            var seconds = padDate(date.getSeconds());
            return year + '年' + month + '月' + day + '日' + " " + hours + ":" + minuates + ":" + seconds;
        }
    },
    mounted:function () {
        var _this = this;
        this.timer = setInterval(function () {
            _this.date = new Date();
        },1000);
    },
    beforeDestroy: function () {
        if(this.timer){
            clearInterval(this.timer);
        }
    }
})


  • {{}} 中不但可以繫結屬性值,還可以使用JavaScript表示式進行簡單的運算、三元運算等
<div id="app">
    {{number/10}}</br>
    {{is ? 'yes':'no'}}</br>
    {{text.split('').reverse().join('')}}</br>
</div>
var app = new Vue({
    el:'#app',
    data:{
        number: 100,
        is: false,
        text: 'Martin'
    }
})
v-if 用法

當其表示式的值改變時,相應地將某些行為應用到DOM上

<div id="app" align="center">
    <p v-if="show">show this message</p>
</div>
var app = new Vue({
    el:'#app',
    data:{
        show:true
    }
})
v-bind 用法

動態更新html元素的屬性

<div id="app" align="center">
    <a v-bind:href="url">link</a>
    <img v-bind:src="imgUrl">
</div>
var app = new Vue({
    el:'#app',
    data:{
        url:'https://www.baidu.com/',
        imgUrl:'https://www.baidu.com/img/xinshouye_353af22a7f305e1fb6cfa259394dea9b.png'
    }
})

v-on

用來繫結事件監聽器