웹 프론트엔드 프런트엔드 Q&A Vue를 사용하여 로그인 페이지 점프 출력 매개변수를 구현하는 방법

Vue를 사용하여 로그인 페이지 점프 출력 매개변수를 구현하는 방법

Apr 26, 2023 pm 02:18 PM

프런트 엔드 기술의 급속한 발전과 대중화로 인해 점점 더 많은 회사가 Vue 기술을 적용하여 자체 웹 사이트를 구축하기 시작했습니다. 기업 웹사이트 애플리케이션에서 로그인은 무시할 수 없는 링크이며, Vue는 로그인 기능을 구현하기 위한 고유한 방식을 가지고 있습니다. 이 기사에서는 Vue를 사용하여 로그인 페이지 점프 출력 매개변수를 구현한 다음 사용자 로그인 확인을 구현하는 방법을 소개합니다.

1. 준비

점프 출력 매개변수 구현을 시작하기 전에 다음 단계를 완료해야 합니다.

(1) Vue-CLI 설치

Vue-CLI는 특히 측면에서 구성 작업을 단순화하는 Vue의 공식 스캐폴딩 도구입니다. 프로젝트 생성, 개발, 패키징 및 구성 등을 통해 Vue 개발에 빠르게 참여할 수 있습니다.

설치 방법:

npm install -g @vue/cli

(2) Vue 프로젝트 생성

명령줄을 사용하여 터미널에서 Vue 프로젝트를 생성하고 프로젝트 루트 디렉터리를 입력한 후

vue create my-project

2. 로직 구현

1) 로그인 페이지

로그인 페이지에서는 확인 및 점프 표시를 위해 사용자 이름과 비밀번호를 입력해야 합니다.

Vue 프로젝트가 생성된 후 페이지 점프를 구현하려면 Vue 플러그인 vue-router를 가져와야 합니다.

먼저 프로젝트의 src 디렉토리에 들어가서 새로운 login.vue 파일을 생성하고 해당 페이지에서 로그인 작업을 수행합니다.

<script><br>"vuex"에서 { mapActions } 가져오기;<br>기본값 내보내기 {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">data() {     return {         username: '',         password: ''     } }, methods: {     ...mapActions(['login']),     // 登录     async submit() {         await this.login({ username: this.username, password: this.password });     } }</pre><div class="contentsignin">로그인 후 복사</div></div> <p>}<br></script>

2) 서버 인터페이스 설정 . 웹사이트 백엔드 작업

로그인 요청을 처리하고 해당 결과 데이터를 반환하려면 서버 측에 RESTful API 인터페이스를 제공해야 합니다. Vue 프로젝트에서는 요청 인터페이스 작업을 위해 Axios 라이브러리를 사용할 수 있습니다.

Vue 프로젝트의 루트 디렉터리에서 명령줄을 사용하여 다음을 실행합니다.

npm install axios

Vue 프로젝트의 루트 디렉터리에서 새 service.js 파일을 만들어 Axios 기반 API 요청 프로세스를 캡슐화합니다. 애플리케이션 전체에서 사용할 수 있도록 Vue 플러그인이 제공되는 별도의 것으로 취급합니다.

//axios 라이브러리 소개
"axios"에서 axios 가져오기;
//axios 인스턴스 만들기
const service = axios.create({

baseURL: "http://192.168.0.102",
timeout: 10000
로그인 후 복사

});
내보내기 기본값({ Vue }) =>

}

src 디렉토리의 index.js 파일에서 방금 캡슐화한 service.js 파일을 Vue 플러그인으로 등록해야 합니다.

'vue'에서 Vue 가져오기

'./service'에서 서비스 가져오기 //서비스 소개

//서비스 플러그인 등록

Vue.use(service, { Vue })

버튼을 클릭하면, 로그인 로직이 실행된 후 로그인 결과 데이터를 확인하고 얻기 위해 백그라운드를 호출해야 합니다. 로그인 결과 데이터는 Vuex에 저장되며 Vue 플러그인 Vuex를 통해 등록됩니다.

src 디렉터리에서 Vuex 관련 작업을 저장할 새 저장소 디렉터리를 만듭니다. 먼저, Vuex의 작업 유형을 정의하기 위해 저장소 디렉터리에 새 type.js 파일을 만듭니다.

//types.js

export const LOGIN_SUCCESS = "LOGIN_SUCCESS"; // 로그인 성공
export const LOGIN_FAIL = "LOGIN_FAIL"; // 로그인 실패

스토어 디렉토리에 새 actions.js 파일을 생성하고 Vuex 액션을 캡슐화하여 Vue 구성 요소에서 이러한 액션을 트리거하고 상태를 업데이트합니다.

import * as types from './types.js'

export default {

Vue.prototype.$axios = service;
로그인 후 복사
}

src/store 디렉토리에서 새 store.js 파일을 생성하고, stata, mutations, actions 및 기타 관련 콘텐츠를 생성합니다.

// store.js

'vue'에서 Vue 가져오기
'vuex'에서 Vuex 가져오기
'./actions.js'에서 액션 가져오기
'./types.js'에서 * 유형으로 가져오기

Vue.use (Vuex)

const store = new Vuex.Store({

login: ({ commit }, param) => new Promise((resolve, reject) => {
    const { username, password } = param;
    this.$axios.post('/login', { username, password }).then(res => {
        const data = res.data;
        if (data.code === 200) {
            commit(types.LOGIN_SUCCESS, { data });
            resolve();
        }
        else {
            commit(types.LOGIN_FAIL, { message: data.message });
            reject(data.message);
        }
    })
})
로그인 후 복사
})

export default store

src 디렉터리의 main.js 파일에서 다음과 같이 store.js를 Vue에 등록해야 합니다.

'vue'에서 Vue 가져오기

'./App.vue'에서 앱 가져오기
'./router'에서 라우터 가져오기
'./store/store.js'에서 스토어 가져오기

Vue.config.productionTip = false

new Vue({

state: {
    info: {
        isLogged: false, // 是否登录
        name: "", // 登录用户名
    }
},
mutations: {
    [types.LOGIN_SUCCESS](state, { data }) {
        state.info.isLogged = true;
        state.info.name = data.name;
    },
    [types.LOGIN_FAIL](state, { message }) {
        state.info.isLogged = false;
        state.info.name = "";
        console.log(message)
    }
},
actions
로그인 후 복사
}).$mount('#app')

3) 페이지로 이동하여 매개변수 결과를 출력합니다

Vuex에 isLogged 상태 매개변수와 이름을 도입합니다. Vuex 업데이트 상태에 표시됩니다. 로그인 성공 후 라우팅을 통해 새 페이지로 이동할 때 로그인 정보와 출력 결과 매개변수를 새 페이지에 전달해야 합니다.

Vue 프로젝트에서는 라우터 프로그래밍 방법을 선택하여 코드를 통해 새 페이지로 이동할 수 있습니다.

router.js 파일에서 라우팅 및 로그인 확인 상태와 출력 결과 매개변수를 설명하는 두 개의 주요 필드를 정의합니다.

'vue'에서 Vue 가져오기

'vue-router'에서 라우터 가져오기
'./views/Home.vue'에서 홈 가져오기
'./views/Login.vue'에서 로그인 가져오기
Vue.use(Router)
const router = new Router({

router,
store, // 注册Vuex
render: h => h(App)
로그인 후 복사
})

router.beforeEach((to, from, next) => { // 라우팅 스위치 시 페이지 로그인 인증 수행

mode: 'history',
routes: [
    {
        path: '/',
        name: 'home',
        component: Home,
        meta: { requiresAuth: true } // requireAuth用于表示页面是否需要登录才能访问,本例中仅仅对home页面设置了登录验证
    },
    {
        path: '/login',
        name: 'login',
        component: Login
    }
]
로그인 후 복사
})

로그인 성공 후 언제, 라우터를 사용하여 출력 결과 매개변수를 queryString 라이브러리를 도입해야 하는 필수 구성 요소로 점프하고 전달해야 합니다.

在登录成功的方法中:

import router from '../router'
import { stringify } from 'querystring'

commit(types.LOGIN_SUCCESS, { data })
const queryString = stringify({ name: data.name }) // 使用 queryString 库,将参数转化为字符串
router.push({ name: "home", query: { authInfo: window.btoa(queryString) }}) // 使用 router 进行跳转,这里使用了 Base64 编码策略,有兴趣的可以了解一下

在Home.vue组件中,我们通过created钩子,获取路由中的输入参数并将其输出。

export default {

name: 'home',
created() {
    if (this.$route.query.authInfo !== undefined) { // 如果存在 authInfo
        const res = atob(this.$route.query.authInfo) // Base64解码操作
        this.formData = qs.parse(res) // 请求参数解码操作
        console.log(this.formData) // 输出参数信息
    }
},
data() {
    return {
        formData: {}
    }
}
로그인 후 복사

}

至此,我们已经成功使用Vue实现登录页跳转输出参数的功能。

结语

本文介绍了如何利用 Vue 实现跳转输出参数,通过 Vue-CLI、Axios、Vuex 和 Vue-Router 等技术栈,实现了基于Vue的网站登录验证功能。当然了,本文的实现是源于作者的参考和思考,如果您也有更好的实现方式,请跟我们一起分享并探讨。

위 내용은 Vue를 사용하여 로그인 페이지 점프 출력 매개변수를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까? useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까? Mar 19, 2025 pm 03:58 PM

이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

React Reconciliation 알고리즘은 어떻게 작동합니까? React Reconciliation 알고리즘은 어떻게 작동합니까? Mar 18, 2025 pm 01:58 PM

이 기사는 가상 Dom 트리를 비교하여 DOM을 효율적으로 업데이트하는 React의 조정 알고리즘을 설명합니다. 성능 이점, 최적화 기술 및 사용자 경험에 미치는 영향에 대해 설명합니다. 문자 수 : 159

JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까? JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까? Mar 18, 2025 pm 01:44 PM

JavaScript의 고차 기능은 추상화, 공통 패턴 및 최적화 기술을 통해 코드 간접성, 재사용 성, 모듈성 및 성능을 향상시킵니다.

카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까? 카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까? Mar 18, 2025 pm 01:45 PM

이 기사는 다중 연계 기능을 단일 연계 함수 시퀀스로 변환하는 기술 인 JavaScript의 카레에 대해 논의합니다. Currying의 구현, 부분 응용 프로그램 및 실제 용도와 같은 혜택, 코드 읽기 향상을 탐색합니다.

Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까? Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까? Mar 21, 2025 pm 06:23 PM

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까? usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까? Mar 19, 2025 pm 03:59 PM

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

이벤트 핸들러의 기본 동작을 어떻게 방지합니까? 이벤트 핸들러의 기본 동작을 어떻게 방지합니까? Mar 19, 2025 pm 04:10 PM

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.

제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까? 제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까? Mar 19, 2025 pm 04:16 PM

이 기사는 예측 가능성, 성능 및 사용 사례와 같은 측면에 중점을 둔 React의 제어 및 통제되지 않은 구성 요소의 장단점에 대해 설명합니다. 그것은 그들 사이에서 선택할 때 고려해야 할 요소에 대해 조언합니다.

See all articles