當前位置:首頁 >  站長 >  編程技術 >  正文

基于VUE實現簡單的學生信息管理系統(tǒng)

 2021-01-14 17:14  來源: 腳本之家   我來投稿 撤稿糾錯

  阿里云優(yōu)惠券 先領券再下單

這篇文章主要介紹了VUE實現一個簡單的學生信息管理系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、主要功能

本次任務主要是使用VUE來實現一個簡單的學生信息管理系統(tǒng),主要功能為:

1.顯示所有學生的信息(默認為10個)

2. 點擊按鈕,顯示出學號尾號為單數(或雙數)的學生信息

3. 增加學生信息

4. 要求使用VUE中 父子組件間通信

二、實現思路

1.數據管理:使用json數組的方式來管理儲存數據

2.顯示學生信息:因為組件是可復用的 Vue 實例,所以在這里引入子組件(用來顯示每個學生的信息),將主頁作為父組件。主頁(父組件)使用v-for 循環(huán)顯示子組件。

3.按單雙號篩選查找學生:循環(huán)遍歷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的區(qū)別。一開始,本來想使用v-show來按篩選條件來顯示不同的學生信息,但是發(fā)現就算不符合當前條件的學生信息還是被渲染并且顯示出來了,通過尋求幫助,才發(fā)現如果我們要顯示多個頁面,并且這些頁面是互斥的關系話,我們使用v-if ,v-else-if,v-else 來顯示。

以下是v-show 和 v-if 的區(qū)別

v-if 只有在判斷為true的時候才會對數據進行渲染,false的時候把包含的代碼進行刪除。除非再次進行數據渲染,v-if才會重新判斷。可以說是用法比較傾向于對數據一次操作。

v-show 是無論判斷是什么都會先對數據進行渲染,只是false的時候對節(jié)點進行display:none;的操作。所以再不重新渲染數據的情況下,改變數據的值可以使數據展示或隱藏。

到此這篇關于基于VUE實現簡單的學生信息管理系統(tǒng)的文章就介紹到這了,更多相關vue學生信息管理系統(tǒng)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

來源:腳本之家

鏈接:https://www.jb51.net/article/203974.htm

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關文章

熱門排行

信息推薦