当前位置: 首页 > 工具软件 > iView-Aliapp > 使用案例 >

Iview实例

寇夜洛
2023-12-01

1、Menu菜单实例

(1)实例1 (用API里事件,稍许复杂)
//跳转查找name属性,再寻找跳转路径
<template>
  <div id="app">
    <div id="nav">
      <Menu mode="horizontal" @on-select="buildJump">
        <MenuItem name="Home">Home</MenuItem>
        <MenuItem name="About">About</MenuItem>
      </Menu>
    </div>
    <router-view />
  </div>
</template>
<script>
  export default {
    methods: {
      buildJump (name) {
        this.$router.push(name)
      }
    }
  }
</script>

(2)实例2 (简便)
//直接寻找跳转路径
<template>
  <div id="app">
    <div id="nav">
      <Menu mode="horizontal">
        <MenuItem to="/">Home</MenuItem>
        <MenuItem to="/about">About</MenuItem>
      </Menu>
    </div>
    <router-view />
  </div>
</template>
(3)菜单栏自动选中当前功能名 (实例)
//MenuItem里的"to"、"name"属性值要一致
<template>
  <div id="app">
    <div id="nav">
      <Menu mode="horizontal" :active-name="activeName">
        <MenuItem to="/" name="/" replace>Home</MenuItem>
        <MenuItem to="/about" name="/about" replace>About</MenuItem>
      </Menu>
    </div>
    <router-view />
  </div>
</template>
<script>
  export default {
    data () {
      return {
        activeName: this.$route.path
      }
    },
    watch: {
      '$route' () {
        console.log(this.$route)
        this.activeName = this.$route.path
      }
    }
  }
</script>

2、验证是否为登录状态(案例)

第一步 在需要存储token的页面绑定事件写入或释放token

<template>
  <div>
    <Button @click="loginsave">登录</Button>
    <Button @click="loginuset">退出</Button>
  </div>
</template>

<script>
  export default {
    name: 'login',
    methods: {
      loginsave () {
        window.localStorage.setItem('login', 1)
      },
      loginuset () {
        window.localStorage.setItem('login', '')
      }
    }
  }
</script>

第二步 路由文件添加存储token的属性及值
//案例
const routes = [
  {
    path: '/login',
    name: 'Login',
    //定义属性
    meta: {
    //定义属性和属性值
      type: ''
    },
    component: () => import('../views/Login.vue')
  },
  {
    path: '/Admin',
    name: 'Admin',
    //定义属性
    meta: {
    //定义属性和属性值
      type: 'login'
    },
    component: () => import('../views/Admin.vue')
  }
]

第三步 添加判断并导向需跳转的路径(可在路由js里写也可在ivew.js里写)
//注意,不管写到那个二者文件中的任意皆要引用router 的 JS文件
router.beforeEach((to, from, next) => {
  const type = to.meta.type
  if (type === 'login') {
    if (window.localStorage.getItem('login')) {
    //导线下一个页面
      next()
    } else {
    //导回登录页面
      next('/login')
    }
  } else {
    next()
  }
})

3、根据不同客户端加载不同页面

 在路由JS文件里写代码
 话不多说直接上案例

//获取客户端类型
const ua = window.navigator.userAgent
let isMobile = false
if (ua.indexOf('iPhone') >= 0) isMobile = true
if (ua.indexOf('iPad') >= 0) isMobile = true
if (ua.indexOf('Android') >= 0) isMobile = true
//判断类型
const path = isMobile ? '/mobile' : ''

const routes = [
  {
    path: '/login',
    name: 'Login',
    meta: {
      type: ''
    },
    //自动切换加载路径
    component: () => import('../views' + path + '/Login.vue')
  }
]

 类似资料: