用VUE實作一個簡單的學生資訊管理系統
- 用VUE實作一個學生資訊管理系統
- 一、主要功能
- 二、實作思路
- 三、代碼實作
- 四、效果展示
- 五、總結
用VUE實作一個學生資訊管理系統
一、主要功能
本次任務主要是使用VUE來實作一個簡單的學生資訊管理系統,主要功能為:
1.顯示所有學生的資訊(默認為10個)
2. 點擊按鈕,顯示出學號尾號為單數(或雙數)的學生資訊
3. 增加學生資訊
4. 要求使用VUE中 父子組件間通信
二、實作思路
1.資料管理:使用json陣列的方式來管理儲存資料
2.顯示學生資訊:因為組件是可復用的 Vue 實體,所以在這里引入子組件(用來顯示每個學生的資訊),將主頁作為父組件,主頁(父組件)使用v-for回圈顯示子組件,
3.按單雙號篩選查找學生:回圈遍歷json陣列,進行判斷,把符合條件的資訊放到新的json陣列,
4.使用 v-if 把符合篩選條件的學生資訊顯示在主頁上,
三、代碼實作
1、父子組件定義
父組件 :首先要定義要呼叫的組件
export default {
name: 'HelloWorld',
components: {
ChildCom//呼叫組件
},
子組件:
export default {
name: 'Child',
props: [
'card_item'
],
data () {
return {
}
}
}
2、組件中的通信
組件是通過Prop向子組件傳遞資料的
父組件:使用v-for 遍歷學生資訊陣列
通過:card_item(子組件定義的接受資料的名字) = “stu”(父組件傳給子組件的資料)
<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>學號:{{card_item.stuId}}</div>
<div v-if="card_item.gender==1">性別:男</div>
<div v-else>性別:女</div>
3、顯示出學號尾號為單數(或雙數)的學生資訊(以單數為例)
danshu (stu_list) {
this.new_list_danshu=[];
stu_list.forEach((item) => {
if(item.stuId%2!=0)
this.new_list_danshu.push(item);//符合條件則加進用來存盤單數資訊的json陣列
}
)
// alert(this.new_list[1]);
this.flag_all=0; //顯示全部
this.flag_danshu=1;//顯示單數
this.flag_shuangshu=0;//顯示雙數
},
4、增加學生資訊
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('添加成功');
}
}
四、效果展示
主頁

顯示學號尾號為單數的學生資訊

增加學生資訊

五、總結
雖然只是很小的一個demo,但在完成中還是遇到了很多問題,比如要注意 v-show 和v-if的區別,一開始,本來想使用v-show來按篩選條件來顯示不同的學生資訊,但是發現就算不符合當前條件的學生資訊還是被渲染并且顯示出來了,通過尋求幫助,才發現如果我們要顯示多個頁面,并且這些頁面是互斥的關系話,我們使用v-if ,v-else-if,v-else 來顯示,
以下是v-show 和 v-if 的區別
v-if只有在判斷為true的時候才會對資料進行渲染,false的時候把包含的代碼進行洗掉,除非再次進行資料渲染,v-if才會重新判斷,可以說是用法比較傾向于對資料一次操作,
v-show是無論判斷是什么都會先對資料進行渲染,只是false的時候對節點進行display:none;的操作,所以再不重新渲染資料的情況下,改變資料的值可以使資料展示或隱藏,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/247671.html
標籤:其他
上一篇:js原生實作年份輪播選擇效果
下一篇:Web前端之HTML
