国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)

這篇具有很好參考價(jià)值的文章主要介紹了我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

好家伙,天天拖,終于寫完了

?

代碼已開源(Gitee)

PH-planewar: 個(gè)人開發(fā)的全棧小游戲 前端:vue2 + element-ui 后端: Springboot + mybatis-plus 數(shù)據(jù)庫(kù): mysql 目前實(shí)現(xiàn)功能: 1.注冊(cè)登陸 2.游戲數(shù)據(jù)保存 3.游戲運(yùn)行 (gitee.com)

(前后端放一起了)

怎么說呢,感覺比較簡(jiǎn)潔,但是問題不大

實(shí)現(xiàn)了分?jǐn)?shù)保存的功能

?文章來源地址http://www.zghlxwxcb.cn/news/detail-461040.html

1.效果如下:

1.刷新頁(yè)面后依舊保存數(shù)據(jù)

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)

?

2.重新登錄后,依舊保存數(shù)據(jù)

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)

?

3.生命值為零后,游戲重置

?

2.代碼如下:

Game.vue

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)Game.vue

MyLogin.vue

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)
<template>
  <div class="login-container">
    <div class="login-box">

      <!-- 頭像區(qū)域 -->
      <div class="text-center avatar-box">
        <img src="../assets/logo.png" class="img-thumbnail avatar" alt="">
      </div>

      <!-- 表單區(qū)域 -->
      <div class="form-login p-4">
        <!-- 登錄名稱 -->
        <div class="form-group form-inline">
          <label for="username">賬號(hào):</label>
          <input type="text" class="form-control ml-2" id="username" placeholder="請(qǐng)輸入賬號(hào)" autocomplete="off"
            v-model.trim="loginForm.loginName" />
        </div>
        <!-- 登錄密碼 -->
        <div class="form-group form-inline">
          <label for="password">密碼:</label>
          <input type="password" class="form-control ml-2" id="password" placeholder="請(qǐng)輸入密碼"
            v-model.trim="loginForm.password" />
        </div>
        <!-- 登錄和重置按鈕 -->
        <div class="form-group form-inline d-flex justify-content-end">
          <button type="button" class="btn btn-secondary mr-2" @click="writenum">測(cè)試</button>
          <button type="button" class="btn btn-secondary mr-2" @click="toregister">去注冊(cè)</button>
          <button type="button" class="btn btn-primary" @click="login">登錄</button>
        </div>
      </div>

    </div>
  </div>
</template>

<script>
import bus from '../js/eventBus'
export default {
  name: 'MyLogin',
  data() {
    return {
      loginForm: {
        id: '',
        password: '',
        life: null,
        score: null,
        loginName: null,
        isFirst:true
      }
    }
  },
  methods: {
    writenum() {
      this.loginForm.loginName = 123456;
      this.loginForm.password = 123456;

    },
    login() {
      //  console.log(this.$store.state.count)
      // console.log('submit!',this.loginForm);
      //表單驗(yàn)證
      if (this.loginForm.loginName == "") {
        this.$message({
          message: '請(qǐng)輸入用戶名',
          type: 'error'
        });
        return;
      }
      if (this.loginForm.password == "") {
        this.$message({
          message: '請(qǐng)輸入密碼',
          type: 'error'
        });
        return;
      }
      //發(fā)送登陸請(qǐng)求
      if (this.loginForm.loginName != "" && this.loginForm.password != "") {
        this.axios.post('http://localhost:3312/sys-user/login', this.loginForm).then((resp) => {

          console.log("this is login", resp);
          let data = resp.data;
          // console.log(this.$store.state.user)
          console.log(resp.data.content)
          //es6語(yǔ)法,擴(kuò)展操作符,找到resp.data.content的每一個(gè)屬性然后賦值給新的對(duì)象
          // this.$store.state.user = { ...resp.data.content }
          // console.log(this.$store.state.user)
          //localStorage存
          localStorage.setItem("insuranceCode", JSON.stringify(resp.data.content));
          console.log(this.loginForm.isFirst)
          localStorage.setItem("getisFirst", JSON.stringify(this.loginForm.isFirst));
          console.log(JSON.parse(localStorage.getItem("getisFirst")))
          //localStorage取
          console.log(JSON.parse(localStorage.getItem("insuranceCode")))
          if (data.success) {
            this.loginForm = {};
            this.$message({
              message: '登陸成功!!!',
              type: 'success'
            });
            this.$router.push({ path: '/game' })
          } else {
            this.$message({
              message: '登陸失敗,密碼錯(cuò)誤或用戶名未注冊(cè)',
              type: 'error'
            });
            console.log(data)
          }
        })
      }
    },
    toregister() {
      this.$router.push('/register')
    },
  },
  mounted() {
    // bus.$emit('getLoginName', this.loginForm)
  }
}
</script>

<style lang="less" scoped>
.login-container {
  background-color: #35495e;
  height: 100%;

  .login-box {
    width: 400px;
    height: 250px;
    background-color: #fff;
    border-radius: 3px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.5);

    .form-login {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      box-sizing: border-box;
    }
  }
}

.form-control {
  flex: 1;
}

.avatar-box {
  position: absolute;
  width: 100%;
  top: -65px;
  left: 0;

  .avatar {
    width: 120px;
    height: 120px;
    border-radius: 50% !important;
    box-shadow: 0 0 6px #efefef;
  }
}
</style>
MyLogin.vue

?

?

3.代碼解釋:

這個(gè)怎么說呢,其實(shí)整個(gè)思路非常簡(jiǎn)單,就是寫的時(shí)候會(huì)有很多小毛病,小bug

思路:

?

?

3.1.登陸驗(yàn)證

首先我們?cè)诘顷懙臅r(shí)候,拿著用戶輸入的用戶名和密碼,發(fā)一次登陸請(qǐng)求,

后端驗(yàn)證密碼后,將用戶的數(shù)據(jù)返回(包括id,分?jǐn)?shù),生命...)

前端拿到數(shù)據(jù)之后,將數(shù)據(jù)保存到本地localStorage

localStorage.setItem("insuranceCode", JSON.stringify(resp.data.content));

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)

?

3.2然后跳轉(zhuǎn)到我們的Game.vue中去

?

3.3.判斷是否首次進(jìn)入

我們?cè)诒韱螖?shù)據(jù)中添加一個(gè)isFirst屬性,來判斷是否首次進(jìn)入游戲界面

isFirst:true
localStorage.setItem("getisFirst", JSON.stringify(this.loginForm.isFirst));

?

?

3.3.1.若為首次進(jìn)入游戲界面

if (JSON.parse(localStorage.getItem("getisFirst")) == true) {
      location.reload();
      console.log("已刷新")
      localStorage.setItem("getisFirst", JSON.stringify("false"));
    }

將頁(yè)面刷新

隨后將isFirst的狀態(tài)改為"false"

(解釋一下,感覺是資源加載的問題,首次進(jìn)入游戲界面的時(shí)候,需要刷新一下,圖片資源才能加載出來,

這也是為什么沒有用其他的傳值方案.其他的傳值方案,刷新一下就沒了)

?

3.4.隨后拿到數(shù)據(jù)并賦值給this.player

//ES6對(duì)象的拓展運(yùn)算符{...Object}
//拓展運(yùn)算符(...)用于取出參數(shù)對(duì)象所有可遍歷屬性然后拷貝到當(dāng)前對(duì)象
this.player = { ...JSON.parse(localStorage.getItem("insuranceCode")) };

?

    window.life = this.player.life
    window.score = this.player.score

?

3.5.為游戲狀態(tài)賦值

window.life和window.score是我們的游戲參數(shù)

我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)

?

3.6.使用計(jì)時(shí)器

隨后就是我們的關(guān)鍵計(jì)時(shí)器了

    setInterval(() => {
      //當(dāng)生命值小于1,即為零時(shí),游戲重置
      if (window.life < 1) {
        // window.life = 3
        // window.score = 0;
        console.log("已重置")
        this.player.life = 3;
        this.player.score = 0;
        localStorage.setItem("insuranceCode", JSON.stringify(this.player));
        this.axios.post('http://localhost:3312/sys-user/update', this.player)
        .then((resp) => {

          console.log("this is update", resp);
          let data = resp.data;
          //
          if (data.success) {
            console.log({
              message: '修改成功',
              type: 'success'
            });
          }
        })
        window.life = 3
        window.score = 0
      }
      this.player.life = window.life
      this.player.score = window.score
      console.log(this.player)
      localStorage.setItem("insuranceCode", JSON.stringify(this.player));
      console.log(this.player.life, this.player.score,window.life,window.score)
      this.axios.post('http://localhost:3312/sys-user/update', this.player)
        .then((resp) => {

          console.log("this is update", resp);
          let data = resp.data;
          //
          if (data.success) {
            console.log({
              message: '修改成功',
              type: 'success'
            });
          }
        })
    }, 1000)

這里是一個(gè)每秒(1000毫秒)執(zhí)行一次的計(jì)時(shí)器

此處進(jìn)行判斷,

3.6.1.若生命值為零了,對(duì)游戲數(shù)據(jù)進(jìn)行初始化(分?jǐn)?shù)歸零,生命值為3)

隨后發(fā)一次請(qǐng)求,保存數(shù)據(jù)

?

3.6.2.若生命值不為0,則

      this.player.life = window.life
      this.player.score = window.score

更新分?jǐn)?shù)和生命值,然后發(fā)請(qǐng)求,將數(shù)據(jù)保存

?

解釋完畢

?

到了這里,關(guān)于我的第一個(gè)項(xiàng)目(十四) :完成數(shù)據(jù)保存功能(前端,增查改接口)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 我的第一個(gè)后端項(xiàng)目(環(huán)境搭建,Springboot項(xiàng)目,運(yùn)行,接口驗(yàn)證)

    我的第一個(gè)后端項(xiàng)目(環(huán)境搭建,Springboot項(xiàng)目,運(yùn)行,接口驗(yàn)證)

    訪問Java Software | OracleOracle官方網(wǎng)站,下載適合你操作系統(tǒng)的最新版本的JDK。安裝JDK并設(shè)置好JAVA_HOME環(huán)境變量。 推薦使用IntelliJ IDEA作為IDE。你可以從官方網(wǎng)站(IntelliJ IDEA – the Leading Java and Kotlin IDE)下載適合你操作系統(tǒng)的版本,并根據(jù)安裝向?qū)нM(jìn)行安裝。最新2023.2版本需要注

    2024年02月15日
    瀏覽(87)
  • 猿創(chuàng)征文|Python-sklearn機(jī)器學(xué)習(xí)之旅:我的第一個(gè)機(jī)器學(xué)習(xí)實(shí)戰(zhàn)項(xiàng)目

    目錄 前言 一、從目的出發(fā) 1.導(dǎo)入數(shù)據(jù) 二、項(xiàng)目開啟 1.導(dǎo)入數(shù)據(jù)

    2024年01月24日
    瀏覽(100)
  • 我的第一個(gè)項(xiàng)目(十二) :分?jǐn)?shù)和生命值的更新(后端增刪查改的"改")

    我的第一個(gè)項(xiàng)目(十二) :分?jǐn)?shù)和生命值的更新(后端增刪查改的"改")

    好家伙,寫后端,這多是一件美逝. 關(guān)于這個(gè)項(xiàng)目的代碼前面的博客有寫? 我的第一個(gè)獨(dú)立項(xiàng)目 - 隨筆分類 - 養(yǎng)肥胖虎 - 博客園 (cnblogs.com) ? 現(xiàn)在,我們登陸進(jìn)去了,我開始和敵人戰(zhàn)斗,誒,打到一百分了,我現(xiàn)在要把這個(gè)分?jǐn)?shù)保存起來 ? ? ?隨便寫一個(gè)測(cè)試樣例 ? ?(確實(shí)是非常樸實(shí)無

    2024年02月01日
    瀏覽(14)
  • MFC——我的第一個(gè)MFC

    MFC——我的第一個(gè)MFC

    我的第一個(gè)MFC是在圖像軟件設(shè)計(jì)課程中創(chuàng)建的,使用Visual Studio 2022軟件,基于C++語(yǔ)言,依賴freeimage圖像庫(kù),實(shí)現(xiàn)在窗口應(yīng)用中對(duì)一幅圖像進(jìn)行各種處理功能(如中值濾波等) 微軟基礎(chǔ)類庫(kù)(Microsoft Foundation Classes,簡(jiǎn)稱MFC)是微軟公司提供的一個(gè)類庫(kù),以C++類的形式封裝了W

    2024年02月06日
    瀏覽(89)
  • 我的第一個(gè)Java Swing窗體程序

    我的第一個(gè)Java Swing窗體程序

    Java Swing入門之窗體 目錄 Java Swing系列 簡(jiǎn)介 一、Swing組件結(jié)構(gòu) 二、窗體實(shí)現(xiàn) 1. 單窗體編寫 2.多窗體編寫 總結(jié) Swing是一個(gè)用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包,是由純Java實(shí)現(xiàn)的。以抽象窗口工具包(AWT)為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格,不依賴

    2024年01月16日
    瀏覽(559)
  • 【JAVA】我和我的第一個(gè)“對(duì)象”相遇

    【JAVA】我和我的第一個(gè)“對(duì)象”相遇

    ??個(gè)人主頁(yè): Aileen_0v0 ??熱門專欄: 華為鴻蒙系統(tǒng)學(xué)習(xí)|計(jì)算機(jī)網(wǎng)絡(luò)|數(shù)據(jù)結(jié)構(gòu)與算法 ? ??個(gè)人格言:“沒有羅馬,那就自己創(chuàng)造羅馬~” 表達(dá)式1 ?表達(dá)式2 :表達(dá)式3 表達(dá)式1必須是一個(gè)布爾表達(dá)式 如果表達(dá)式1為真,那么執(zhí)行表達(dá)式2,否則執(zhí)行表達(dá)式3 根據(jù)以下代碼思考打印的

    2024年01月24日
    瀏覽(94)
  • Spring Boot快速搭建一個(gè)簡(jiǎn)易商城項(xiàng)目【完成登錄功能且優(yōu)化】

    Spring Boot快速搭建一個(gè)簡(jiǎn)易商城項(xiàng)目【完成登錄功能且優(yōu)化】

    未優(yōu)化做簡(jiǎn)單的判斷: 優(yōu)化:返回的是json的格式 GlobalExceptionHandler 這里為啥要寫這兩個(gè)類: 理解:編寫 GlobalExceptionHandler 類可以集中處理應(yīng)用程序中的各種異常,提高代碼的可維護(hù)性,同時(shí)簡(jiǎn)化了代碼 實(shí)體:使用注解 拋一個(gè)異常: 報(bào)錯(cuò)信息: 這個(gè)是時(shí)候錯(cuò)誤已經(jīng)該變:

    2024年01月22日
    瀏覽(22)
  • VLLO - 我的第一個(gè)視頻編輯器Vlog

    VLLO - 我的第一個(gè)視頻編輯器Vlog

    ? ?【應(yīng)用名稱】:VLLO - 我的第一個(gè)視頻編輯器Vlog ?【適用平臺(tái)】:#Android ? ?【軟件標(biāo)簽】:#VLLO ?【應(yīng)用版本】:9.0.20 ?【應(yīng)用大小】:180MB ?【軟件說明】:VLLO 是一款非常簡(jiǎn)單的視頻編輯器。初學(xué)者和一般使用者也能享受剪輯、添加字幕、加入背景音樂與轉(zhuǎn)場(chǎng)效果

    2024年01月19日
    瀏覽(82)
  • 【使用VS開發(fā)的第一個(gè)QT項(xiàng)目——實(shí)現(xiàn)相機(jī)功能(包括QT下載、配置、攝像頭程序)】

    【使用VS開發(fā)的第一個(gè)QT項(xiàng)目——實(shí)現(xiàn)相機(jī)功能(包括QT下載、配置、攝像頭程序)】

    下載鏈接 windows程序的后綴是.exe Ubuntu程序的后綴是.run 按照安裝指示操作、注冊(cè)QT,然后出現(xiàn)”選擇“界面時(shí) 勾選“MinGW 7.3.0 64-bit”,“MSVC 2017 64-bit”;點(diǎn)擊“Developer and Designer Tools”前的尖號(hào),打開其中選項(xiàng),勾選“MinGW 7.3.0 64-bit”。 在VS\\\"工具\(yùn)\\"→\\\"擴(kuò)展與更新\\\"→\\\"聯(lián)機(jī)\\\"中搜

    2024年02月07日
    瀏覽(24)
  • 我的第一個(gè)NPM包:panghu-planebattle-esm(胖虎飛機(jī)大戰(zhàn))使用說明

    我的第一個(gè)NPM包:panghu-planebattle-esm(胖虎飛機(jī)大戰(zhàn))使用說明

    好家伙,我的包終于開發(fā)完啦 ? 歡迎使用胖虎的飛機(jī)大戰(zhàn)包!! 為你的主頁(yè)添加色彩 這是一個(gè)有趣的網(wǎng)頁(yè)小游戲包,使用canvas和js開發(fā) 使用ES6模塊化開發(fā) 效果圖如下: ?(覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynasties/panghu-planebattle-esm.git NPM: panghu-pla

    2023年04月19日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包