用vue實現一個增刪改查案例


 

 

首先需要准備好vue.js包

<! DOCTYPE  html >
< html >
     < head >
         < meta  charset= "utf-8" >
         < meta  name= "viewport"  content= "width=device-width, initial-scale=1" >
         < title >demo01 </ title >
         < link  rel= "stylesheet"  href= "css/bootstrap.min.css" />
         < script  src= "./lib/vue.js" > < / script >
         < style >
         .course{
             width1200px;
             margin50px  auto;
             border1px  solid  #ccc;
             border-radius5px;
        }
         .course  .editPanel{
             border-bottom1px  solid  #ccc;
             padding20px;
        }
         .course  .editPanel  label{
             margin-right20px;
        }
         .course  .editPanel  input{            
             width150px;
             padding5px  10px;
             font-size14px;
             border-radius4px;
             outlinenone;
             border1px  solid  #aaa;
        }
         .course  .editPanel  input[ type= button]{
             width70px;
             background-colorrgb( 50, 120, 180);
             padding5px  20px;
             letter-spacing5px;
             color#eee;
        }
         .course  .editPanel  .search{
             margin-left50px;
        }
         .course  .list{
             padding20px;
        }
         .course  .list  table{
             width100%;
             border1px  solid  #ccc;
             border-collapsecollapse;
        }
         .course  .list  table  tr  td, .course  .list  table  tr  th{
             padding10px;
             border1px  solid  #ccc;
             text-aligncenter;
             font-size14px;
             line-height14px;
        }
         .course  .list  table  tr  td  a{
             color#369;
             text-decorationnone;
        }
         .course  .list  table  .firstCol{
             width50px;
        }
     < / style >
     </ head >
     < body >
         < div  class= "course"  id= "course" >
             < div  class= "editPanel" >
                 < label  for= "" >序號: < input  type= "text"  v-model= "id" ></ label > //v-model指令可以實現表單元素和model中數據 的雙向數據綁定
                 < label  for= "" >課程: < input  type= "text"  v-model= "cName" ></ label >    
                 < label  for= "" >教師: < input  type= "text"  v-model= "teacher"  @keyup.enter= "add" ></ label >
                 < input  type= "button"  value= "添加"  @click= "add" >
                 < lable  for= ""  class= "search" >搜索: < input  type= "text"  v-model= "keyword"  @keyup= "search(keyword)" ></ lable >
             </ div >
             < div  class= "list" >
                 < table >
                     < thread >
                         < tr >
                             < th  class= "firstCol" >序號 </ th >
                             < th >課程 </ th >
                             < th >教師 </ th >
                             < th >時間 </ th >
                             < th >操作 </ th >
                         </ tr >
                     </ thread >
                     < tbody >
                         < tr  v-for= "item in search(keyword)"  :key= "item.id" > //v-for循環的時候,key屬性只能使用number 獲取string
               //注意:key在使用的時候,必須使用v-bind屬性綁定的形式,指定key的值。
               //加上一個key(能夠保證數據的唯一性)
                             < td >{{item.id}} </ td >
                             < td >{{item.cName}} </ td >
                             < td >{{item.teacher}} </ td >
                             < td >{{item.time | timeFormat('cn')}} </ td >
                             < td >< a  href= ""   @click.prevent= "del(item.id) " >刪除 </ a ></ td > //需要根據id傳參
                         </ tr >
                     </ tbody >
                 </ table >
             </ div >
         </ div >
     </ body >
     < script >
         var  vm= new  Vue({
             el: '#course',
             data:{
                 id: '',
                 cName: '',
                 teacher: '',
                 time: new  Date(),
                 keyword: '',
                 list:[
                    { 'id' : 1, 'cName' : '語文', 'teacher' : '小明', 'time' : '2020-1-3'},
                    { 'id' : 2, 'cName' : '數學', 'teacher' : '小紅', 'time' : '2020-2-3'},
                    { 'id' : 3, 'cName' : '英語', 'teacher' : '小華', 'time' : '2020-3-3'}
                ]
            },
             methods:{
// 增加一條記錄
                 add : function(){
                     if( this. id. length> 0&& this. cName. length> 0&& this. teacher. length> 0){ //確保都有數據
                         this. list. push({ 'id' : this. id, 'cName' : this. cName, 'teacher' : this. teacher, 'time' : this. time})   
                    } else{
                         alert( '請填入完整的課程信息!');
                    }
                },
// 刪除一條記錄
                 del : function( id){ // 根據id刪除數據
                     for( var  i= 0; i< this. list. length; i++){
                         if( this. list[ i]. id== id){
                             this. list. splice( i, 1); //從索引為i的位置開始刪除,刪1個
                        }
                    }
                    },
                 search : function( word){
                     var  result=[];
                     for( var  i= 0; i< this. list. length; i++){
                         if( this. list[ i]. cName. toLowerCase(). indexOf( word. toLowerCase())>- 1){ //toLowerCase()方法用於把字符串轉換為小寫
                             result. push( this. list[ i]);
                        }
                    }
                     return  result;
                },
            
        },
             filters:{
                 timeFormat : function( dateStr, pattern){
                 var  date= new  Date( dateStr);
                 var  year= date. getFullYear();
                 var  month= date. getMonth()+ 1;
                 var  day= date. getDate();
                 var  result= '';
                 if( pattern){
                     switch( pattern. toLowerCase()){
                         case  'cn':
                         result= year+ '年'+ month+ '月'+ day+ '日';
                         break;
                         case  'en':
                         resultyear+ '-'+ month+ '-'+ day;
                         break;
                         default:
                         result= year+ '.'+ month+ '.'+ day;
                         break;
                      }
                    } else{
                         result= year+ '.'+ month+ '.'+ day;
                }
                     return  result;
            }
        }
        })
     < / script >
</ html >

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM