最近在做一個(gè)JavaScript項(xiàng)目,其中一部分需要前端渲染,所以我們決定用Vue來改寫這部分代碼。以下是原始的JavaScript代碼:
function render(data) { var html = ''; for (var i = 0; i < data.length; i++) { html += '<div>'; html += '<h2>' + data[i].title + '</h2>'; html += '<p>' + data[i].description + '</p>'; html += '</div>'; } document.getElementById('content').innerHTML = html; }
這個(gè)函數(shù)接受一個(gè)數(shù)組,然后在頁(yè)面上渲染出所有元素。Vue的寫法非常類似,但是它可以根據(jù)數(shù)據(jù)的變化自動(dòng)重新渲染頁(yè)面。
Vue.component('item', { props: ['data'], template: '<div><h2>{{ data.title }}</h2><p>{{ data.description }}</p></div>' }); new Vue({ el: '#app', data: { items: [] }, methods: { fetchData: function() { // 獲取數(shù)據(jù)的邏輯 this.items = newData; // 這里 newData 是獲取到的數(shù)據(jù) } } });
我們創(chuàng)建了一個(gè)名為“item”的Vue組件,它從外部傳入一個(gè)data屬性。該組件使用了Vue的模板語(yǔ)法,更加簡(jiǎn)潔和易于閱讀。在我們的應(yīng)用中,我們創(chuàng)建了一個(gè)Vue實(shí)例,并將其掛載到頁(yè)面上的一個(gè)元素上。我們使用了Vue的數(shù)據(jù)綁定功能,將“items”綁定到一個(gè)空數(shù)組上。當(dāng)我們獲取到新的數(shù)據(jù)時(shí),我們可以通過將其設(shè)置為“items”的值來觸發(fā)頁(yè)面的重新渲染。