基于VUE實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)
一、主要功能
本次任務(wù)主要是使用VUE來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),主要功能為:
1.顯示所有學(xué)生的信息(默認(rèn)為10個(gè))
2. 點(diǎn)擊按鈕,顯示出學(xué)號(hào)尾號(hào)為單數(shù)(或雙數(shù))的學(xué)生信息
3. 增加學(xué)生信息
4. 要求使用VUE中 父子組件間通信
二、實(shí)現(xiàn)思路
1.數(shù)據(jù)管理:使用json數(shù)組的方式來(lái)管理儲(chǔ)存數(shù)據(jù)
2.顯示學(xué)生信息:因?yàn)榻M件是可復(fù)用的 Vue 實(shí)例,所以在這里引入子組件(用來(lái)顯示每個(gè)學(xué)生的信息),將主頁(yè)作為父組件。主頁(yè)(父組件)使用v-for循環(huán)顯示子組件。
3.按單雙號(hào)篩選查找學(xué)生:循環(huán)遍歷json數(shù)組,進(jìn)行判斷,把符合條件的信息放到新的json數(shù)組。
4.使用 v-if 把符合篩選條件的學(xué)生信息顯示在主頁(yè)上。
三、代碼實(shí)現(xiàn)
1、父子組件定義
父組件 :首先要定義要調(diào)用的組件
export default {
name: 'HelloWorld',
components: {
ChildCom//調(diào)用組件
},
子組件:
export default {
name: 'Child',
props: [
'card_item'
],
data () {
return {
}
}
}
2、組件中的通信
組件是通過(guò)Prop向子組件傳遞數(shù)據(jù)的
父組件:使用v-for 遍歷學(xué)生信息數(shù)組
通過(guò):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é)號(hào):{{card_item.stuId}}</div>
<div v-if="card_item.gender==1">性別:男</div>
<div v-else>性別:女</div>
3、顯示出學(xué)號(hào)尾號(hào)為單數(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);//符合條件則加進(jìn)用來(lái)存儲(chǔ)單數(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('請(qǐng)完善信息');
}
else{
var item ={};
item.stuId=id;
item.name=name;
item.gender=gender;
this.stu_list.push(item);
alert('添加成功');
}
}
四、效果展示
主頁(yè)

顯示學(xué)號(hào)尾號(hào)為單數(shù)的學(xué)生信息

增加學(xué)生信息

五、總結(jié)
雖然只是很小的一個(gè)demo,但在完成中還是遇到了很多問題,比如要注意 v-show 和v-if的區(qū)別。一開始,本來(lái)想使用v-show來(lái)按篩選條件來(lái)顯示不同的學(xué)生信息,但是發(fā)現(xiàn)就算不符合當(dāng)前條件的學(xué)生信息還是被渲染并且顯示出來(lái)了,通過(guò)尋求幫助,才發(fā)現(xiàn)如果我們要顯示多個(gè)頁(yè)面,并且這些頁(yè)面是互斥的關(guān)系話,我們使用v-if ,v-else-if,v-else 來(lái)顯示。
以下是v-show 和 v-if 的區(qū)別
v-if只有在判斷為true的時(shí)候才會(huì)對(duì)數(shù)據(jù)進(jìn)行渲染,false的時(shí)候把包含的代碼進(jìn)行刪除。除非再次進(jìn)行數(shù)據(jù)渲染,v-if才會(huì)重新判斷??梢哉f(shuō)是用法比較傾向于對(duì)數(shù)據(jù)一次操作。
v-show是無(wú)論判斷是什么都會(huì)先對(duì)數(shù)據(jù)進(jìn)行渲染,只是false的時(shí)候?qū)?jié)點(diǎn)進(jìn)行display:none;的操作。所以再不重新渲染數(shù)據(jù)的情況下,改變數(shù)據(jù)的值可以使數(shù)據(jù)展示或隱藏。
到此這篇關(guān)于基于VUE實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)的文章就介紹到這了,更多相關(guān)vue學(xué)生信息管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
到此這篇關(guān)于基于VUE實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)的文章就介紹到這了,更多相關(guān)vue學(xué)生信息管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue elementUI使用tabs與導(dǎo)航欄聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了vue elementUI使用tabs與導(dǎo)航欄聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
vue-admin-box第一步npm?install時(shí)報(bào)錯(cuò)的處理
這篇文章主要介紹了vue-admin-box第一步npm?install時(shí)報(bào)錯(cuò)的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue3.0在子組件中觸發(fā)的父組件函數(shù)方式
這篇文章主要介紹了vue3.0在子組件中觸發(fā)的父組件函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
簡(jiǎn)單談?wù)刅ue3中的ref和reactive
vue3中實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)的方法是就是使用ref和reactive,所謂響應(yīng)式就是界面和數(shù)據(jù)同步,能實(shí)現(xiàn)實(shí)時(shí)更新,下面這篇文章主要給大家介紹了關(guān)于Vue3中ref和reactive的相關(guān)資料,需要的朋友可以參考下2023-04-04
vue.js中Vue-router 2.0基礎(chǔ)實(shí)踐教程
這篇文章主要給大家介紹了關(guān)于vue.js中Vue-router 2.0基礎(chǔ)實(shí)踐的相關(guān)資料,其中包括vue-router 2.0的基礎(chǔ)用法、動(dòng)態(tài)路由匹配、嵌套路由、編程式路由、命名路由以及命名視圖等相關(guān)知識(shí),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05
不依任何賴第三方,單純用vue實(shí)現(xiàn)Tree 樹形控件的案例
這篇文章主要介紹了不依任何賴第三方,單純用vue實(shí)現(xiàn)Tree 樹形控件的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
Vue+ElementUI項(xiàng)目使用webpack輸出MPA的方法
這篇文章主要介紹了Vue+ElementUI項(xiàng)目使用webpack輸出MPA的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08

