vue 登录

先来学习下怎么搞个登录界面出来吧,百度那么多教程写的都是一堆东西,不简洁,一堆代码,对于新手一点不和谐。自己就慢慢摸索。其实也就只有一个重要知识点,叫导航守卫(https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局前置守卫)

1、首先建立起来一个项目,前面也已经说过了。

2、建立一个login.vue文件内容如下

<template>
  <div>
    <p>用户名:<input type="text" v-model="userName"/></p>
    <p>密码:<input type="text" v-model="passWord"/></p>
    <button @click="login">登录</button>
  </div>
</template>

<script>
// import axios from 'axios'

export default {
  name: 'login',
  data () {
    return {
      userName: '',
      passWord: ''
    }
  },
  methods: {
    login () {
      console.log('登录成功')
      // 页面进行跳转
      this.$router.push({path: '/user', params: {id: '123'}})
    }
  }
}
</script>

<style scoped>

</style>

3、建立一个user.vue文件,内容如下

<template>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>
</template>

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

<style scoped>

</style>

4、然后建立两个路由地址

{
  path: '/login',
  name: 'login',
  component: login
},
{
  path: '/user',
  name: 'user',
  component: user,
  meta: {
    needLogin: true
  }
}

5、添加一个路由守卫,也就是路由过滤器。

router.beforeEach((to, from, next) => {
  if (to.meta.needLogin) {
    console.log('需要登录..')
    next('/login')
  } else {
    next()
  }
})

6、然后运行项目,http://localhost:8080/login,点击登录,在控制台出现“登录成功”和“需要登录...”,页面一点变化也没有,这其实是已经把user路径给拦截回去了,可以在浏览器输入http://localhost:8080/user,你会发现还是在login页面。注意步骤5中的蓝色字体,就是那一行代码用来跳转到登录页面。

vue 登录

在实际开发中,在login方法中保存用户的信息即可,在beforeach中判断是否存储有信息来控制是否跳转到登录页面

注:URL没有#是因为我在路由脚本里添加了mode:'history',路径就不会出现#符号了。

转载于:https://my.oschina.net/uwith/blog/3017739