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

Vue3.0極速入門 - 登錄demo

這篇具有很好參考價(jià)值的文章主要介紹了Vue3.0極速入門 - 登錄demo。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Talk is cheap, Show the code

·
在完成npm和vue的環(huán)境安裝,并了解了基本的目錄和文件結(jié)構(gòu)以后,直接寫一個(gè)帶登錄和首頁(yè)的demo做示例,快速了解一個(gè)vue工程的創(chuàng)建和基本的頁(yè)面跳轉(zhuǎn)

第一步創(chuàng)建工程

1、選擇手動(dòng)模式創(chuàng)建工程

npm create app-demo

Vue3.0極速入門 - 登錄demo,vue

2、添加router到工程中

Vue3.0極速入門 - 登錄demo,vue

第二步:創(chuàng)建登錄頁(yè)面

1、新建文件

Vue3.0極速入門 - 登錄demo,vue

2、文件代碼

LoginByCode.vue

<template>
    <div class="login-code">
        <input placeholder="請(qǐng)輸入手機(jī)號(hào)"/>
        <br/>
        <input placeholder="請(qǐng)輸入手機(jī)驗(yàn)證碼"/>
    </div>
</template>

<script>
export default {
    name: 'LoginByCode'
}
</script>

<style scoped>
.login-code {
    position:relative;
}
</style>

LoginByPwd.vue

<template>
    <div>
        <input placeholder="請(qǐng)輸入手機(jī)號(hào)或賬號(hào)"/>
        <br/>
        <input placeholder="請(qǐng)輸入密碼"/>
    </div>
</template>

<script>
export default {
    name: 'LoginByPwd'
}
</script>

LoginView.vue

<template>
  <div class="login-containt">
    <img class="logo" src="../assets/logo.png" />
    <login-by-code v-show="logonType === 'code'"></login-by-code>
    <login-by-pwd v-show="logonType === 'pwd'">></login-by-pwd>
    <button class="login-button" v-on:click="onSubmit">登錄</button>
    <br />
    <div class="login-bottom-containt">
      <button
        class="change-login-type"
        @click="onChangeLoginType"
        v-show="logonType === 'pwd'"
      >
        驗(yàn)證碼登錄
      </button>
      <button
        class="change-login-type"
        @click="onChangeLoginType"
        v-show="logonType === 'code'"
      >
        密碼登錄
      </button>
    </div>
  </div>
</template>

<script>
import LoginByCode from "../components/LoginByCode.vue";
import LoginByPwd from "../components/LoginByPwd.vue";

export default {
  components: { LoginByCode, LoginByPwd },
  name: "LoginView",
  data() {
    return {
      logonType: "pwd",
    };
  },
  methods: {
    onSubmit() {
      this.$router.push('/homePage');
      if (this.$data.logonType === "pwd") {
        // 密碼登錄
        console.log("密碼登錄");
      } else {
        // 驗(yàn)證碼登錄
        console.log("驗(yàn)證碼登錄");
      }
    },
    onChangeLoginType() {
      if (this.$data.logonType === "pwd") {
        this.$data.logonType = "code";
      } else {
        this.$data.logonType = "pwd";
      }
      console.log("切換登錄方式");
    },
  },
};
</script>

<style  scoped>
.login-containt {
  text-align: center;
}

.logo {
  margin-top: 40%;
  width: 100px;
  height: 100px;
}
.login-bottom-containt {
  text-align: center;
}
.login-button {
  margin-top: 40px;
}
.change-login-type {
  text-align: right;
  margin-top: 40px;
}
</style>

3、效果圖

Vue3.0極速入門 - 登錄demo,vue

第三步:修改路由

修改router/index.js文件

router/index.js

import { createRouter, createWebHashHistory } from 'vue-router'
import LoginView from '../views/LoginView.vue'
import HomeView from '../views/HomeView.vue'

const routes = [
  {
    path: '/',
    redirect: 'login'
  },
  {
    path: '/login',
    name: 'login',
    component: LoginView
  },
  {
    path: '/homePage',
    name: 'homePage',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

router.beforeEach((to,from,next)=>{
  const toPath = to.path;
  const fromPath = from.path;
  console.log(fromPath)
  console.log(toPath)
  next()
});

router.onError((err) => {
  console.log(err)
})


export default router

2、修改App.vue文件

App.vue

<template>
  <div id="app" class="app-containt">
    <router-view class="router-containt"></router-view>
  </div>
</template>

<script>

export default {
  name: 'App',
}
</script>

<style>
</style>

3、點(diǎn)擊登錄按鈕后跳轉(zhuǎn)到首頁(yè)

Vue3.0極速入門 - 登錄demo,vue

Vue-Router是如何工作的

1、index.js的route定義是前提

const routes = [
    // 通過redirect實(shí)現(xiàn)重定向,可以在用戶訪問默認(rèn)的url時(shí)跳轉(zhuǎn)到指定的登錄頁(yè)面
  {
    path: '/',
    redirect: 'login'
  },
  // 通過component組件方式注冊(cè),path是路徑,跳轉(zhuǎn)時(shí)使用path跳轉(zhuǎn)
  {
    path: '/login',
    name: 'login',
    component: LoginView
  },
  // 通過chunk方式注冊(cè),可以實(shí)現(xiàn)延遲加載
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  }
]

// 創(chuàng)建route對(duì)象
const router = createRouter({
  history: createWebHashHistory(),
  routes
})

// 通過export default 暴露router對(duì)象給外部使用
export default router

2、想要使用必須在main.js掛載

因?yàn)槭褂檬謩?dòng)創(chuàng)建模式,vue-cli已經(jīng)自動(dòng)將router對(duì)象掛在到App對(duì)象

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

3、想要跳轉(zhuǎn)必須在最外層的App.vue定義

router是一個(gè)棧結(jié)構(gòu),router-view相當(dāng)于路由的rootview,必須預(yù)先放在最外層的div里,系統(tǒng)也會(huì)默認(rèn)往router-view注入第一個(gè)棧頂vue頁(yè)面

<template>
  <div id="app" class="app-containt">
    <router-view class="router-containt"></router-view>
  </div>
</template>

push、replace和go的使用區(qū)別

this.$router.push('/homePage')

往棧中壓入homePage頁(yè)面,瀏覽器歷史增加一條瀏覽記錄

this.$router.replace('/homePage')

用homePage替換棧頂?shù)膙ue頁(yè)面,瀏覽器歷史不變

this.$router.go(-1)

推出一個(gè)棧頂元素,回到上一個(gè)頁(yè)面文章來源地址http://www.zghlxwxcb.cn/news/detail-676041.html

到了這里,關(guān)于Vue3.0極速入門 - 登錄demo的文章就介紹完了。如果您還想了解更多內(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)文章

  • springboot + vue3實(shí)現(xiàn)視頻播放Demo(video.js & Vue3-video-play視頻播放器)

    springboot + vue3實(shí)現(xiàn)視頻播放Demo(video.js & Vue3-video-play視頻播放器)

    ffmpeg官網(wǎng) 長(zhǎng)時(shí)長(zhǎng)視頻java存儲(chǔ)及vue播放解決方法 【 攻城略地 】vue3 + video.js播放m3u8視頻流格式 Vue3-video-play組件官網(wǎng) Vue3視頻播放器組件Vue3-video-play入門教程 vue-video-player播放m3u8格式的視頻 Spring boot視頻播放(解決MP4大文件無法播放),整合ffmpeg,用m3u8切片播放。 Java獲取MP4視頻文

    2024年02月07日
    瀏覽(33)
  • 在vue3中淺嘗antv X6 2.0 demo(三)

    在vue3中淺嘗antv X6 2.0 demo(三)

    終于抽空把a(bǔ)ntv X6 2.0這個(gè)版本的demo抽出來了,原以為項(xiàng)目會(huì)一直使用vue3去做這個(gè)流程,結(jié)果最近項(xiàng)目經(jīng)理說antv X6的菜單功能只有react才能用...然鵝...寫到菜單模塊的時(shí)候,發(fā)現(xiàn)都可以用的... 目前我項(xiàng)目里面react版本的多一些功能(如:新增節(jié)點(diǎn)時(shí)自動(dòng)布局、右鍵菜單,如圖)

    2024年02月05日
    瀏覽(17)
  • Vue3使用element-plus實(shí)現(xiàn)彈窗效果-demo
  • vue3登錄頁(yè)面

    vue3登錄頁(yè)面

    使用了element-plus

    2024年02月14日
    瀏覽(17)
  • Vue3自定義簡(jiǎn)單的Swiper滑動(dòng)組件-觸控板滑動(dòng)&鼠標(biāo)滑動(dòng)&左右箭頭滑動(dòng)-demo

    Vue3自定義簡(jiǎn)單的Swiper滑動(dòng)組件-觸控板滑動(dòng)&鼠標(biāo)滑動(dòng)&左右箭頭滑動(dòng)-demo

    代碼實(shí)現(xiàn)了一個(gè)基本的滑動(dòng)功能,通過鼠標(biāo)按下、鼠標(biāo)松開和鼠標(biāo)移動(dòng)事件來監(jiān)聽滑動(dòng)操作。 具體實(shí)現(xiàn)邏輯如下: 在? onMounted ?鉤子函數(shù)中,我們?yōu)闈L動(dòng)容器添加了三個(gè)事件監(jiān)聽器: mousedown ?事件:當(dāng)鼠標(biāo)按下時(shí),設(shè)置? control.isDown ?為? true ,記錄鼠標(biāo)起始位置? control.

    2024年02月13日
    瀏覽(21)
  • SpringBoot+Vue3實(shí)現(xiàn)登錄驗(yàn)證碼功能

    SpringBoot+Vue3實(shí)現(xiàn)登錄驗(yàn)證碼功能

    Redis緩存穿透、擊穿、雪崩問題及解決方法 Spring Cache的使用–快速上手篇 分頁(yè)查詢–Java項(xiàng)目實(shí)戰(zhàn)篇 全局異常處理–Java實(shí)戰(zhàn)項(xiàng)目篇 Java實(shí)現(xiàn)發(fā)送郵件(定時(shí)自動(dòng)發(fā)送郵件)_java郵件通知_心態(tài)還需努力呀的博客-CSDN博客 該系列文章持續(xù)更新,更多的文章請(qǐng)點(diǎn)擊我的主頁(yè)查看哦!

    2024年02月01日
    瀏覽(22)
  • vue3項(xiàng)目中實(shí)現(xiàn)登錄成功頁(yè)面回跳

    vue3項(xiàng)目中實(shí)現(xiàn)登錄成功頁(yè)面回跳

    在很多的時(shí)候都登錄成功都需要回跳,比如? 在未登錄的情況下將商品加入購(gòu)物車,會(huì)提示先登錄.那么登錄成功這時(shí)就不單止是登錄到首頁(yè),應(yīng)該是將頁(yè)面重新回跳到購(gòu)物車頁(yè)面. 登錄我這邊是放到pinia去管理的 以下是回跳的解決方案: ? ?

    2024年02月11日
    瀏覽(15)
  • Vue3.2+TypeScript管理模塊記錄1-登錄模塊

    1.登錄模塊效驗(yàn) rules: 規(guī)則對(duì)象屬性: ? required,代表這個(gè)字段務(wù)必要校驗(yàn)的 ? min:文本長(zhǎng)度至少多少位 ? max:文本長(zhǎng)度最多多少位 ? message:錯(cuò)誤的提示信息 ? trigger:觸發(fā)校驗(yàn)表單的時(shí)機(jī) change-文本發(fā)生變化觸發(fā)校驗(yàn),blur:失去焦點(diǎn)的時(shí)候觸發(fā)校驗(yàn)規(guī)則? ? //保證全部表單相校驗(yàn)通過

    2024年02月09日
    瀏覽(20)
  • 登錄頁(yè)的具體實(shí)現(xiàn) (小兔鮮兒)【Vue3】

    登錄頁(yè)的具體實(shí)現(xiàn) (小兔鮮兒)【Vue3】

    整體認(rèn)識(shí) 登錄頁(yè)面的主要功能就是 表單校驗(yàn)和登錄登出業(yè)務(wù) 準(zhǔn)備模板 配置路由跳轉(zhuǎn) 為什么需要校驗(yàn) 作用:前端提前校驗(yàn)可以 省去一些錯(cuò)誤的請(qǐng)求提交 ,為后端節(jié)省接口壓力 表單如何進(jìn)行校驗(yàn) ElementPlus表單組件內(nèi)置了表單校驗(yàn)功能,只需要 按照組件要求配置必要參數(shù) 即

    2024年02月15日
    瀏覽(23)
  • vue3 快速入門系列 —— vue3 路由

    vue3 快速入門系列 —— vue3 路由

    在vue3 基礎(chǔ)上加入路由。 vue3 需要使用 vue-router V4 ,相對(duì)于 v3,大部分的 Vue Router API 都沒有變化。 Tip :不了解路由的同學(xué)可以看一下筆者之前的文章:vue2 路由 參考:vue2 路由官網(wǎng)、vue3 路由官網(wǎng) 在 Vue Router API 從 v3(Vue2)到 v4(Vue3)的重寫過程中,大部分的 Vue Router API 都

    2024年04月09日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包