vue响应式mvvm详解,登录拦截-beforeEach

2 篇文章 0 订阅
  1. MVVM 由 Model、View、ViewModel 三部分构成,Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI展现出来,ViewModel 是一个同步View 和 Model的对象。
    在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
     ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
     Vue.js 是采用 Object.defineProperty 的 getter 和 setter,并结合观察者模式来实现数据绑定的。当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转为 getter/setter。用户看不到 getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。
    参考vue官网
    mvvm模式理解

登录拦截-beforeEach全局路由守卫

import Vue from 'vue';
import VueRouter from 'vue-router';
// import { LgqRoutes } from './lgqRouter';
import { vCharts } from './v-charts';

Vue.use(VueRouter);

const routes = [...vCharts];

export { routes };
const router = new VueRouter({
  routes
});

export default router;

router.beforeEach((to,from,next)=>{
  let user=localStorage.getItem('user')//获取本地存储用户的信息
  if(to.path==='/login'){
    if(user){
      next('/index') //如果本地存储中有用户的信息 跳转到index页面
    }else{
      next()
    }
  }else{
    if(user){
      next()
    }else{
      next('/login')
    }
  }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值