您好,登錄后才能下訂單哦!
這篇文章主要介紹了vue.js基于v-for怎么實現批量渲染Json數組對象列表數據的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue.js基于v-for怎么實現批量渲染Json數組對象列表數據文章都會有所收獲,下面我們一起來看看吧。
Vuejs的出現減輕了對DOM的直接操作,同時它提供的 v-for 渲染列表數據也給我們提供了很大的方便。即使是復雜的 Json數組對象,也可以使用 多層嵌套的 v-for 實現,格式如下:
<div v-for="(item,index) in items"> <div v-for="(list,index) in item.lists"></div> <div>
假設當前的HTML,VUE 文本格式如下:
<div id="app" class="columns"> <div class="column"> <div class="card"> <div class="card-content"> <div id="data" class="columns is-multiline "> <div class="column is-half"> <div class="media"> <div class="media-content"> <p class="has-text-weight-bold">職業知識</p> <p class="help">生涯樹提供的職業數據框架,可以從職業能力、知識、技能、活動、內容方面進行探索和規劃</p> </div> </div> <div class="message-body"> <div class="field buttons"> <a>興趣:</a> <span>常見的任務和環境的偏好</span> </div> </div> </div> </div> </div> </div> </div> </div>
需要渲染的JSON數組對象格式如下:
var allData = [ { "id":"職業知識", "name":"關于各行業職業信息的分析,主要因素分析", "lists":[ { "title":"興趣", "describe":"常見的任務和環境的偏好" }, { "title":"價值觀", "describe":"個人滿意度的關鍵方面" }, { "title":"技能", "describe":"學習發展、組織協作和資源管理的發達能力" } ] }, { "id":"職業擴展", "name":"提供除本職業之外的擴展知識等各個方面", "lists":[ { "title":"活動", "describe":"常見的工作行為類型" }, { "title":"內容", "describe":"工作性質的物理和社會因素" }, { "title":"能力", "describe":"個人基本持久屬性" } ] } ];
使用VUE操作渲染列表,先對文本分配對應的字段值,格式如下:
<div class="column is-half" v-for="(item, index) in items"> <div class="media"> <div class="media-content"> <p class="has-text-weight-bold">{{ item.id }}</p> <p class="help">{{ item.name }}</p> </div> </div> <div class="message-body" v-for="(list, index) in item.lists"> <div class="field buttons" > <a>{{ list.title}}:</a> <span>{{ list.describe}}</span> </div> </div> </div>
JS操作,引入 vuejs,創建實例渲染到指定對象(引入鏈接請移步到官網 https://cn.vuejs.org/)
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
var vm = new Vue({ el: '#app', data: { items:allData }})
VUE渲染列表數據完成,就是這么簡單。接下來看看 原生JS 是如何渲染列表數據的:
原生JS操作數組取值:循環。使用 for in 直接操作對象,或者 for循環直接取值,格式如下:
for(var key in values){};for(var i=0;i<values.length;i++){},根據情況取任意一種方式,以為演示兩種方式的使用
function Id(id) { return document.getElementById(id); //獲取模塊的ID } function getData(allData) { var data = Id("data"); var html=''; for(var i in allData){ //外層循環獲取標志信息 var list = ''; for(var j=0;j<allData[i].lists.length;j++){ //內層循環渲染詳細列表項 list+='<div class="message-body">'+ '<div class="field buttons">'+ '<a class=" ">'+allData[i].lists[j].title+':</a>'+ '<span>'+allData[i].lists[j].describe+'</span>'+ '</div>'+ '</div>'; } html+='<div class="column is-half">'+ '<div class="media">'+ '<div class="media-content">'+ '<p class="has-text-weight-bold">'+allData[i].id+'</p>'+ '<p class="help">'+allData[i].name+'</p>'+ '</div>'+ '</div>'+list+ //將內層渲染好的列表項模塊添加到外層大模塊中 '</div>'; } data.innerHTML = html; //像指定的ID模塊追加內容 } //調用渲染數據方法并傳遞參數 JSON數組對象 getData(allData);
最終,VUE ,原生JS 渲染出來的列表數據效果均如下:
關于“vue.js基于v-for怎么實現批量渲染Json數組對象列表數據”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue.js基于v-for怎么實現批量渲染Json數組對象列表數據”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。