当前位置:首页 > VUE

vue 用户功能实现

2026-02-20 11:08:11VUE

用户登录功能实现

使用 Vue 和 Vuex 管理用户登录状态,结合后端 API 进行身份验证。

模板部分

<template>
  <div>
    <input v-model="username" placeholder="用户名" />
    <input v-model="password" type="password" placeholder="密码" />
    <button @click="login">登录</button>
    <p v-if="error">{{ error }}</p>
  </div>
</template>

脚本部分

<script>
import { mapActions } from 'vuex';

export default {
  data() {
    return {
      username: '',
      password: '',
      error: '',
    };
  },
  methods: {
    ...mapActions(['loginUser']),
    async login() {
      try {
        await this.loginUser({ username: this.username, password: this.password });
        this.$router.push('/dashboard');
      } catch (err) {
        this.error = '登录失败,请检查用户名或密码';
      }
    },
  },
};
</script>

用户注册功能实现

通过表单提交用户注册信息,调用后端 API 完成注册流程。

模板部分

<template>
  <div>
    <input v-model="form.username" placeholder="用户名" />
    <input v-model="form.email" placeholder="邮箱" />
    <input v-model="form.password" type="password" placeholder="密码" />
    <input v-model="form.confirmPassword" type="password" placeholder="确认密码" />
    <button @click="register">注册</button>
    <p v-if="error">{{ error }}</p>
  </div>
</template>

脚本部分

vue 用户功能实现

<script>
import { mapActions } from 'vuex';

export default {
  data() {
    return {
      form: {
        username: '',
        email: '',
        password: '',
        confirmPassword: '',
      },
      error: '',
    };
  },
  methods: {
    ...mapActions(['registerUser']),
    async register() {
      if (this.form.password !== this.form.confirmPassword) {
        this.error = '两次输入的密码不一致';
        return;
      }
      try {
        await this.registerUser(this.form);
        this.$router.push('/login');
      } catch (err) {
        this.error = '注册失败,请检查输入信息';
      }
    },
  },
};
</script>

用户信息管理

使用 Vuex 存储用户信息,通过 API 获取或更新用户数据。

Vuex Store 配置

const store = new Vuex.Store({
  state: {
    user: null,
  },
  mutations: {
    SET_USER(state, user) {
      state.user = user;
    },
  },
  actions: {
    async fetchUser({ commit }) {
      const response = await axios.get('/api/user');
      commit('SET_USER', response.data);
    },
    async updateUser({ commit }, userData) {
      const response = await axios.put('/api/user', userData);
      commit('SET_USER', response.data);
    },
  },
});

组件中调用用户信息

vue 用户功能实现

<script>
import { mapState, mapActions } from 'vuex';

export default {
  computed: {
    ...mapState(['user']),
  },
  created() {
    this.fetchUser();
  },
  methods: {
    ...mapActions(['fetchUser', 'updateUser']),
    async saveProfile() {
      await this.updateUser(this.user);
    },
  },
};
</script>

用户权限控制

通过路由守卫实现页面访问权限控制,未登录用户重定向到登录页。

路由配置

const router = new VueRouter({
  routes: [
    { path: '/login', component: Login },
    { path: '/dashboard', component: Dashboard, meta: { requiresAuth: true } },
  ],
});

router.beforeEach((to, from, next) => {
  const isAuthenticated = store.state.user !== null;
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

用户注销功能

清除 Vuex 中的用户状态并重定向到登录页。

注销方法实现

methods: {
  logout() {
    this.$store.commit('SET_USER', null);
    this.$router.push('/login');
  },
}

标签: 功能用户
分享给朋友:

相关文章

vue修改功能实现

vue修改功能实现

Vue 修改功能的实现方法 在 Vue 中实现修改功能通常涉及表单绑定、数据更新和事件处理。以下是几种常见的实现方式: 数据双向绑定 使用 v-model 指令实现表单元素与 Vue 实例数据的双向…

vue功能实现

vue功能实现

Vue 功能实现指南 Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用。以下是 Vue 功能实现的关键方法和技术。 数据绑定与响应式 Vue 的核心特性是数据绑定和响应式系统。通过 d…

php实现留言板功能

php实现留言板功能

PHP 留言板功能实现 数据库设计 创建数据库表 messages,包含以下字段: id:自增主键 name:留言者姓名(VARCHAR) email:留言者邮箱(VARCHAR) content…

h5实现点击复制功能

h5实现点击复制功能

使用document.execCommand方法(兼容旧浏览器) 通过document.execCommand('copy')实现复制功能,需先选中文本内容。创建一个隐藏的textarea或input…

vue实现收货功能

vue实现收货功能

实现收货功能的基本思路 在Vue中实现收货功能通常涉及前端界面交互、后端API调用以及状态管理。以下是关键步骤和代码示例: 页面布局与数据绑定 使用Vue的模板语法构建收货表单,包含收货人、联系方式…

vue 实现筛选功能

vue 实现筛选功能

实现筛选功能的基本思路 在Vue中实现筛选功能通常涉及以下几个核心步骤:数据绑定、筛选逻辑处理、结果展示。以下是具体实现方法。 数据准备与绑定 准备一个包含所有数据的数组,并使用v-model或v…