欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實(shí)現(xiàn)可增刪查改的成績(jī)單

 更新時(shí)間:2021年08月08日 09:11:00   作者:!win !  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)可增刪查改的成績(jī)單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前端變化層出不窮,去年NG火一片,今年react,vue火一片,ng硬著頭皮看了幾套教程,總被其中的概念繞暈,react是faceback出品,正在不斷學(xué)習(xí)中,同時(shí)抽時(shí)間了解了vue,查看了vue官方文擋,看完格外入眼,總覺(jué)得要拿來(lái)試一試手。

正好周未,做一個(gè)小成績(jī)單玩玩,以前有用avalon也做過(guò)一個(gè)類(lèi)似的,從過(guò)程來(lái)看,二個(gè)框架都在避免開(kāi)發(fā)者頻繁操作dom,脫離dom苦海,安心處理數(shù)據(jù)業(yè)務(wù)邏輯,從二個(gè)示例來(lái)看,可以成倍的提高開(kāi)發(fā)效率。

vue示例代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>vue成績(jī)單</title>
 <style type="text/css">
 *{
 margin:0;
 padding:0;
 }
 .report_card{
 width:800px;
 margin:0 auto;
 font-size:12px;
 }
 .report_card table{
 width:100%;
 border-collapse: collapse;
 text-align:center;
 }
 .report_card caption{
 font-size:14px;
 text-align:left;
 line-height:30px;
 font-weight:bold;
 }
 .report_card table th,.report_card table td{
 border:1px solid #ccc;
 }
 .report_card table th{
 height:36px;
 background:#f8f8f8;
 }
 .report_card table td{
 height:32px;
 background:#f8f8f8;
 }
 .content{
 width:100%;
 height:32px;
 line-height:32px;
 position:relative;
 }
 .content input{
 position:absolute;
 top:0;
 left:0;
 width:100%;
 color:#999;
 padding-left:10px;
 -webkit-box-sizing:border-box;
 box-sizing:border-box;
 height:30px;
 border:1px solid blue;
 -webkit-animation:borderAn 2s infinite;
 animation:borderAn 2s infinite;
 }
 .studyForm select{
 width:100px;
 height:28px;
 }
 .searchInput{
 width:200px;
 height:28px;
 }
 .searchButton{
 width:100px;
 height:32px;
 }
 @-webkit-keyframes borderAn{
 0%{
 border-color:transparent;
 }
 100%{
 border-color:blue;
 }
 }
 @keyframes borderAn{
 0%{
 border-color:transparent;
 }
 100%{
 border-color:blue;
 }
 }
 .studyForm{
 margin:10px 0;
 }
 .studyForm input{
 width:120px;
 height:30px;

 }
 </style>
</head>
<body>
 <div class="report_card" id="reportCard">
 <table class="studyForm">
 <caption>成績(jī)錄入/處理</caption>
 <tbody>
 <tr>
  <td width="170">學(xué)號(hào):<input type="text" v-model="addArr.stuId"></td>
  <td width="170">姓名:<input type="text" v-model="addArr.name"></td>
  <td width="170">語(yǔ)文:<input type="text" v-model="addArr.ywScores"></td>
  <td width="170">數(shù)學(xué):<input type="text" v-model="addArr.sxScores"></td>
  <td colspan="2" width="120">
  <a href="javascript:void(0);" v-on:click="submitStu">錄入</a>
  <a href="javascript:void(0);" v-on:click="resetStu">重置</a>
  </td>
 </tr>
 <tr>
  <td align="left">
  搜索:<input v-model="searchTxt" type="text" class="searchInput">
  </td>
  <td>
  排序字段:
  <select v-model='sortKey'>
  <option value="ywScores">語(yǔ)文</option>
  <option value="sxScores">數(shù)學(xué)</option>
  </select>
  </td>
  <td>
  排序類(lèi)型:
  <select v-model="sortClass">
  <option value="1">升序</option>
  <option value="-1">降序</option>
  </select>
  </td>
  <td colspan="3"></td>
 </tr>
 </tbody>
 </table>
 <table class="scoreList">
 <caption>成績(jī)列表</caption>
 <thead>
 <th width="170">學(xué)號(hào)</th>
 <th width="170">姓名</th>
 <th width="170">語(yǔ)文</th>
 <th width="170">數(shù)學(xué)</th>
 <th colspan="2" width="120">操作</th>
 </thead>
 <tbody>
 <tr v-for="item in studyArr | filterBy searchTxt | orderBy sortKey sortClass">
  <td><div class="content">{{item.stuId}}<input v-model="editArr.stuId" type="text" v-if="$index==nowEditCol"></div></td>
  <td><div class="content">{{item.name}}<input v-model="editArr.name" type="text" v-if="$index==nowEditCol"></div></td>
  <td><div class="content">{{item.ywScores}}<input v-model="editArr.ywScores" type="text" v-if="$index==nowEditCol"></div></td>
  <td><div class="content">{{item.sxScores}}<input v-model="editArr.sxScores" type="text" v-if="$index==nowEditCol"></div></td>
  <td>
  <a href="javascript:void(0);" v-on:click="startEdit($index)" v-if="$index!=nowEditCol">編輯</a>
  <a href="javascript:void(0);" v-on:click="cancelEdit" v-if="$index==nowEditCol">取消</a>
  <a href="javascript:void(0);" v-on:click="sureEdit($index)" v-if="$index==nowEditCol">確認(rèn)</a>
  </td>
  <td><a href="javascript:void(0);" v-on:click="deleteStu($index)">刪除</a></td>
 </tr>
 </tbody>
 </table>
 </div>
 <script type="text/javascript" src="vue.js"></script>
 <script type="text/javascript">
 var studyArrJson=[
 {'stuId':'stu0001','name':'張三','ywScores':85,'sxScores':90},
 {'stuId':'stu0002','name':'李四','ywScores':88,'sxScores':85},
 {'stuId':'stu0003','name':'王五','ywScores':65,'sxScores':75},
 {'stuId':'stu0004','name':'劉六','ywScores':58,'sxScores':96}
 ];
 var reportCardVm=new Vue({
 el:'#reportCard',
 data:{
 studyArr:studyArrJson,//成績(jī)花名冊(cè)
 addArr:{'stuId':'','name':'','ywScores':'','sxScores':''},//新增的表單字段
 nowEditCol:-1,//當(dāng)前編輯的行
 editStatus:false,//當(dāng)前是否在編輯狀態(tài)
 searchTxt:'',//搜索字段
 sortKey:'ywScores',//排序健
 sortClass:'1',//升降排序1為升,-1為降
 },
 methods:{
 //啟動(dòng)索引index數(shù)據(jù)編輯
 startEdit:function(index){
  this.nowEditCol=index;
 },
 //取消編輯狀態(tài)
 cancelEdit:function(){
  this.nowEditCol=-1;
 },
 //啟動(dòng)索引index數(shù)據(jù)修改確認(rèn)
 sureEdit:function(index){
  this.studyArr.$set(index,this.editArr);
  this.nowEditCol=-1;
 },
 //刪除索引index數(shù)據(jù)
 deleteStu:function(index){
  this.studyArr.splice(index,1);
 },
 //新增成績(jī)
 submitStu:function(){
  var addArr={
  'stuId':this.addArr.stuId,
  'name':this.addArr.name,
  'ywScores':this.addArr.ywScores,
  'sxScores':this.addArr.sxScores
  };
  this.studyArr.push(addArr);
  this.resetStu();
 },
 //復(fù)位新增表單
 resetStu:function(){
  this.addArr={
  'stuId':'',
  'name':'',
  'ywScores':'',
  'sxScores':''
  }
 }
 },
 computed:{
 //存儲(chǔ)當(dāng)前編輯的對(duì)象
 editArr:function(){
  var editO=this.studyArr[this.nowEditCol];
  return {
  'stuId':editO.stuId,
  'name':editO.name,
  'ywScores':editO.ywScores,
  'sxScores':editO.sxScores
  }
 }
 }
 })
 </script>
</body>
</html>

在線(xiàn)測(cè)試地址:http://jsbin.com/kavugufuci/edit?html,output

一個(gè)VUE對(duì)象就是一個(gè)view model,基本由下面幾部分組成

其中data主動(dòng)存放當(dāng)前view的屬性也就是在頁(yè)面上能用來(lái)綁定的數(shù)據(jù),methods主要用來(lái)存當(dāng)前view model的方法,computed也是用來(lái)存當(dāng)前view的屬性的,只是它是計(jì)算屬性,它的值可能由data里某一個(gè)值直接影響,相當(dāng)于你修改了view里的data里的某一個(gè)值 ,它會(huì)自動(dòng)跟著修改,就想當(dāng)于ng里用$watch來(lái)實(shí)現(xiàn)的功能,當(dāng)前vue也提示了$watch功能,但是用計(jì)算屬性使用起來(lái)更快捷高效。

當(dāng)前示例view model分析

這是當(dāng)前的view model屬性,如果數(shù)據(jù)要綁定到html上去,可響應(yīng)的那都要在這一塊初始定好,如果后續(xù)會(huì)用到的也要在初始的時(shí)候掛好位置,后期手動(dòng)添加是不會(huì)起作用的,此項(xiàng)目各字段功能具體看文字注釋。

這是此 view model的方法,可直接綁定到html上也可以?xún)?nèi)部以this.開(kāi)頭來(lái)調(diào)用,內(nèi)部的this都是指向當(dāng)前view model,可以調(diào)用當(dāng)前view model上的所有屬性跟方法,這里也是我們處理數(shù)據(jù),書(shū)寫(xiě)業(yè)務(wù)邏輯的地方,此示例項(xiàng)目各方法功能具體看文字注釋。

這里是計(jì)算屬性,它的值由data下的nowEditCol來(lái)決定,相當(dāng)于你寫(xiě)一個(gè)$watch方法在監(jiān)聽(tīng)nowEditCol,但是此處vue內(nèi)部幫你處理了,推薦在項(xiàng)目中使用。

當(dāng)前項(xiàng)目使用view model方式,都是直接綁定在DOM元素上來(lái)做的,這也是熱門(mén)的MVVM框架的模式.

我一直都有在了解vue跟avalon ,ng,react這方面的東東,但是考慮到切入速度跟入手難受,我首先選擇的是vue,avalon,但是又由于vue的兼容,如果要使用vue就得放棄

安卓4.2以下的版本的原生瀏覽器,于是就開(kāi)始使用avalon,用avalon 做過(guò)一些H5項(xiàng)目,但是由于avalon只是一個(gè)司徒正美個(gè)人項(xiàng)目總覺(jué)得在一些穩(wěn)定性和未來(lái)發(fā)展上感覺(jué)

很難說(shuō),在跑很多測(cè)試案例的時(shí)候也發(fā)現(xiàn)一些BUG,當(dāng)然在我做的那些項(xiàng)目還沒(méi)有掉進(jìn)avalon的大坑,但是avalon的兼容是值得稱(chēng)贊的,司徒正美應(yīng)該是花費(fèi)了很大精力,

如果你做的項(xiàng)目要兼容到非標(biāo)準(zhǔn)的瀏覽就如IE6-7-8,又想體驗(yàn)MVVM框架開(kāi)發(fā)的高效的時(shí)候,avalon是你的首選。在目前兼容環(huán)境越來(lái)越好的情況,后期如果再接到H5的項(xiàng)目,

我會(huì)選擇用vue來(lái)做做項(xiàng)目。

更多vue的學(xué)習(xí)了解,請(qǐng)查閱官方文擋:http://cn.vuejs.org/guide/,這也是你入手vue最佳地方。

本文已被整理到了《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue3+element Plus如何實(shí)現(xiàn)彈框的拖拽、可點(diǎn)擊底層頁(yè)面功能

    vue3+element Plus如何實(shí)現(xiàn)彈框的拖拽、可點(diǎn)擊底層頁(yè)面功能

    這篇文章主要介紹了vue3+element Plus如何實(shí)現(xiàn)彈框的拖拽、可點(diǎn)擊底層頁(yè)面功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-11-11
  • 基于mpvue的小程序項(xiàng)目搭建的步驟

    基于mpvue的小程序項(xiàng)目搭建的步驟

    mpvue 是美團(tuán)開(kāi)源的一套語(yǔ)法與vue.js一致的、快速開(kāi)發(fā)小程序的前端框架,這篇文章主要介紹了基于mpvue的小程序項(xiàng)目搭建的步驟,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-05-05
  • uni-app?開(kāi)發(fā)微信小程序定位功能

    uni-app?開(kāi)發(fā)微信小程序定位功能

    這篇文章主要介紹了uni-app?開(kāi)發(fā)微信小程序定位,通過(guò)使用onLocationChange方法持續(xù)監(jiān)聽(tīng)地址,根據(jù)定位精度字段判斷是否使用此次定位的經(jīng)緯度,需要的朋友可以參考下
    2022-04-04
  • vue+iview?Table表格多選切換分頁(yè)保持勾選狀態(tài)

    vue+iview?Table表格多選切換分頁(yè)保持勾選狀態(tài)

    這篇文章主要為大家詳細(xì)介紹了vue+iview?Table表格多選切換分頁(yè)保持勾選狀態(tài),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue3+vite項(xiàng)目H5配置適配步驟詳解

    vue3+vite項(xiàng)目H5配置適配步驟詳解

    這篇文章主要為大家介紹了vue3+vite項(xiàng)目H5配置適配步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • vite構(gòu)建項(xiàng)目并支持微前端

    vite構(gòu)建項(xiàng)目并支持微前端

    本文主要介紹了vite構(gòu)建項(xiàng)目并支持微前端,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • VUE 文字轉(zhuǎn)語(yǔ)音播放的實(shí)現(xiàn)示例

    VUE 文字轉(zhuǎn)語(yǔ)音播放的實(shí)現(xiàn)示例

    本文主要介紹了VUE 文字轉(zhuǎn)語(yǔ)音播放的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Vue實(shí)現(xiàn)一個(gè)返回頂部backToTop組件

    Vue實(shí)現(xiàn)一個(gè)返回頂部backToTop組件

    本篇文章主要介紹了Vue實(shí)現(xiàn)一個(gè)返回頂部backToTop組件,可以實(shí)現(xiàn)回到頂部效果,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • vue debug 二種方法

    vue debug 二種方法

    這篇文章主要介紹了vue debug 二種方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • vue模板配置與webstorm代碼格式規(guī)范設(shè)置

    vue模板配置與webstorm代碼格式規(guī)范設(shè)置

    這篇文章主要介紹了vue模板配置與webstorm代碼格式規(guī)范設(shè)置詳細(xì)的相關(guān)資料,需要的朋友可以參考一下文章得具體內(nèi)容,希望對(duì)你有所幫助
    2021-10-10

最新評(píng)論