在Vue中,每個Vue應用程序都是一個Vue實例,使用new Vue()可以創建Vue實例。Vue實例中提供了許多選項和方法,其中一些可以用于應用的配置和設置,而在Vue實例中,使用函數來訪問和控制應用程序。下面是Vue實例的一些常用函數。
new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, methods: { showMessage: function () { alert(this.message); } } })
在上面的代碼中,我們使用了new Vue()函數來創建一個Vue實例,并將其綁定到頁面上的#app元素上。在data中初始化了一個message屬性,然后用methods定義了一個showMessage函數,這個函數可以彈出一個對話框,展示message的值。
new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, computed: { reversedMessage: function () { return this.message.split('').reverse().join(''); } } })
在上面的代碼中,我們定義了一個computed屬性,這個屬性中定義了一個函數reversedMessage。這個函數會對message進行處理,將其字符順序顛倒后返回。當message變化時,reversedMessage會自動更新。如果使用methods來實現這個功能,需要手動調用showMessage函數,而使用computed則會自動更新,這是使用computed的優點之一。
new Vue({ el: '#app', data: { isActive: true }, computed: { classObject: function () { return { active: this.isActive, 'text-danger': !this.isActive } } } })
在上面的代碼中,我們使用了一個計算屬性classObject,這個屬性返回一個對象,對象的屬性名為class值,屬性值為一個布爾值,用來控制class是否生效。在這個例子中,當isActive為true時類名active生效,而當isActive為false時類名text-danger生效。
new Vue({ el: '#app', data: { todos: [ { text: 'Learn JavaScript' }, { text: 'Learn Vue.js' }, { text: 'Build something awesome' } ] } })
在上面的代碼中,我們使用了data選項來初始化一個todo列表,可以使用v-for指令來展示這個列表。
The message is: {{ message }}
在上面的代碼中,我們將Vue實例轉換為了Vue組件,使用了Vue單文件組件的寫法,使用v-model指令綁定了message屬性,展示了message的值。這種寫法是Vue.js推薦的寫法之一,可以方便地管理組件的結構、樣式和行為。