基于VUE實現(xiàn)簡單的學(xué)生信息管理系統(tǒng)
一、主要功能
本次任務(wù)主要是使用VUE來實現(xiàn)一個簡單的學(xué)生信息管理系統(tǒng),主要功能為:
1.顯示所有學(xué)生的信息(默認(rèn)為10個)
2. 點擊按鈕,顯示出學(xué)號尾號為單數(shù)(或雙數(shù))的學(xué)生信息
3. 增加學(xué)生信息
4. 要求使用VUE中 父子組件間通信
二、實現(xiàn)思路
1.數(shù)據(jù)管理:使用json數(shù)組的方式來管理儲存數(shù)據(jù)
2.顯示學(xué)生信息:因為組件是可復(fù)用的 Vue 實例,所以在這里引入子組件(用來顯示每個學(xué)生的信息),將主頁作為父組件。主頁(父組件)使用v-for循環(huán)顯示子組件。
3.按單雙號篩選查找學(xué)生:循環(huán)遍歷json數(shù)組,進行判斷,把符合條件的信息放到新的json數(shù)組。
4.使用 v-if 把符合篩選條件的學(xué)生信息顯示在主頁上。
三、代碼實現(xiàn)
1、父子組件定義
父組件 :首先要定義要調(diào)用的組件
export default { name: 'HelloWorld', components: { ChildCom//調(diào)用組件 },
子組件:
export default { name: 'Child', props: [ 'card_item' ], data () { return { } } }
2、組件中的通信
組件是通過Prop向子組件傳遞數(shù)據(jù)的
父組件:使用v-for 遍歷學(xué)生信息數(shù)組
通過:card_item(子組件定義的接受數(shù)據(jù)的名字) = “stu”(父組件傳給子組件的數(shù)據(jù))
<div v-if="flag_danshu==1"> <Child-com id="1" class="list" v-for="(stu,index1) in new_list_danshu" :key="index1" :card_item="stu" > </Child-com> </div> <div v-else-if="flag_shuangshu==1"> <Child-com id="2" class="list" v-for="(stu,index2) in new_list_shuangshu" :key="index2" :card_item="stu" > </Child-com> </div> <div v-else-if="flag_all==1"> <Child-com id="3" class="list" v-for="(stu,index3) in stu_list" :key="index3" :card_item="stu"> </Child-com> </div>
子組件:
<div>姓名:{{ card_item.name }} </div> <div>學(xué)號:{{card_item.stuId}}</div> <div v-if="card_item.gender==1">性別:男</div> <div v-else>性別:女</div>
3、顯示出學(xué)號尾號為單數(shù)(或雙數(shù))的學(xué)生信息(以單數(shù)為例)
danshu (stu_list) { this.new_list_danshu=[]; stu_list.forEach((item) => { if(item.stuId%2!=0) this.new_list_danshu.push(item);//符合條件則加進用來存儲單數(shù)信息的json數(shù)組 } ) // alert(this.new_list[1]); this.flag_all=0; //顯示全部 this.flag_danshu=1;//顯示單數(shù) this.flag_shuangshu=0;//顯示雙數(shù) },
4、增加學(xué)生信息
add:function(){ var name = document.getElementById("stu_name").value; var id = document.getElementById("stu_id").value; var gender = document.getElementById("stu_gender").value; if(name==''||id==''||gender==''){ alert('請完善信息'); } else{ var item ={}; item.stuId=id; item.name=name; item.gender=gender; this.stu_list.push(item); alert('添加成功'); } }
四、效果展示
主頁
顯示學(xué)號尾號為單數(shù)的學(xué)生信息
增加學(xué)生信息
五、總結(jié)
雖然只是很小的一個demo,但在完成中還是遇到了很多問題,比如要注意 v-show 和v-if的區(qū)別。一開始,本來想使用v-show來按篩選條件來顯示不同的學(xué)生信息,但是發(fā)現(xiàn)就算不符合當(dāng)前條件的學(xué)生信息還是被渲染并且顯示出來了,通過尋求幫助,才發(fā)現(xiàn)如果我們要顯示多個頁面,并且這些頁面是互斥的關(guān)系話,我們使用v-if ,v-else-if,v-else 來顯示。
以下是v-show 和 v-if 的區(qū)別
v-if只有在判斷為true的時候才會對數(shù)據(jù)進行渲染,false的時候把包含的代碼進行刪除。除非再次進行數(shù)據(jù)渲染,v-if才會重新判斷。可以說是用法比較傾向于對數(shù)據(jù)一次操作。
v-show是無論判斷是什么都會先對數(shù)據(jù)進行渲染,只是false的時候?qū)?jié)點進行display:none;的操作。所以再不重新渲染數(shù)據(jù)的情況下,改變數(shù)據(jù)的值可以使數(shù)據(jù)展示或隱藏。
到此這篇關(guān)于基于VUE實現(xiàn)簡單的學(xué)生信息管理系統(tǒng)的文章就介紹到這了,更多相關(guān)vue學(xué)生信息管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
到此這篇關(guān)于基于VUE實現(xiàn)簡單的學(xué)生信息管理系統(tǒng)的文章就介紹到這了,更多相關(guān)vue學(xué)生信息管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vant-ui組件調(diào)用Dialog彈窗異步關(guān)閉操作
這篇文章主要介紹了vant-ui組件調(diào)用Dialog彈窗異步關(guān)閉操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11vue+vant-UI框架實現(xiàn)購物車的復(fù)選框全選和反選功能
這篇文章主要介紹了vue+vant-UI框架實現(xiàn)購物車的復(fù)選框全選和反選功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11vue3如何使用provide實現(xiàn)狀態(tài)管理詳解
Vue3中有一對新增的api,provide和inject,熟悉Vue2的朋友應(yīng)該明,這篇文章主要給大家介紹了關(guān)于vue3如何使用provide實現(xiàn)狀態(tài)管理的相關(guān)資料,需要的朋友可以參考下2021-10-10el-tree的實現(xiàn)葉子節(jié)點單選的示例代碼
本文主要介紹了el-tree的實現(xiàn)葉子節(jié)點單選的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Vue學(xué)習(xí)筆記進階篇之vue-cli安裝及介紹
這篇文章主要介紹了Vue學(xué)習(xí)筆記進階篇之vue-cli安裝及介紹,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07