Vue2-todolist——搭建&配置&路由&守卫

简介: 从0开始搭建Vue项目——todolist,本文涉及cli搭建项目&配置&路由&守卫相关内容

搭建项目

  1. vue-cli全局安装
npm install -g @vue/cli
//安装vue-cli 4
复制代码
  1. 搭建脚手架
vue create todolist-vue
复制代码
  1. 到达项目目录
cd todolist-vue
复制代码
  1. 运行
npm run serve
复制代码

1.webp.jpg

在安装过程中会有自定义的配置,一般来说我选择配置css预处理以及默认eslint。当然其中的路由也就是vue-router可以选择安装也可以选择后续安装,以及相关配置不必要的情况下不要存在package.json中

安装elementUI库

  1. 安装
npm i element-ui -S
复制代码
  1. 引入(全局)
//main.js
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
复制代码

main.js配置说明

  1. import Vue from 'vue'
    导入vue包,得到Vue构造函数
  2. import App from './App.vue'
    导入APP.vue根组件,把其中的模板结构渲染到页面中
  3. new Vue({render:h=>h(app)}).$mount('#app')
    创建Vue的实例对象并把render函数指定的组件渲染到页面上

路由配置

  1. 安装vue-router
npm install vue-router --save-dev
复制代码
  1. 我们首先在src目录下新建文件夹views,在views中创建Login.vue和Todo.vue
  2. 然后我们在src目录下新建文件夹router,在router新建index.js作为路由配置文件
//index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
复制代码
  1. 创建路由的实例对象
const router = new VueRouter
复制代码
  1. 向外共享路由实例对象
export default router
复制代码
  1. 引入vue文件
import Login from "../views/Login";
import Todo from '../views/Todo'
复制代码
  1. 配置实例对象
{path: "/",redirect: '/login'},
{path: "/todo",component: Todo},
{path: "/login",component: Login}
复制代码
  1. 这里的redirect 为默认,当地址为/时,会自动跳转到配置的组件中
  2. 导入并挂载路由模块(mian.js)
import router from '@/router/index.js'
new Vue({render: h => h(APP),router:router}).$mounter
复制代码
  1. 注意这里的@符是指代src目录,其是在webpack中配置,但是由于由脚手架直接搭建,所以我们是没有看到webpack.config.js文件
  2. 关于默认src目录的问题由于我们项目是由脚手架搭建的所以在我们所看的项目目录中是看不到webpack.config.js文件的,也就是我们看不到我们关于默认目录配置的地方,但是我们可以通过可视化来查看
  • 启动可视化
vue ui
复制代码
  • 查看任务中的webpack配置
    1.webp.jpg
  • 运行查看
    1.webp.jpg
    在这里我们就可以看到关于目录的配置,这里的alias中的第一个就是关于默认目录的配置项目

导航守卫

  1. 全局前置守卫在我们登录之前,需要配置导航守卫,来防止用户在没有权限的时候绕过登录跳转到操作页面
  • 创建路由实例对象
const router = new VueRouter({........})
复制代码
  • 调用路由实例对象的beforeEach(),即可声明“全局前置守卫”
router.beforeEach(function() { })
复制代码
  • 每次发送路由导航跳转时,都会自动触发 fn为一个回调函数
router.beforeEach(() => { })
复制代码
  1. 全局守卫的三个形参
router.beforeEach((to,from,next) => { })
复制代码
  • to 是将要访问的路由的信息对象
  • from 是将要离开的路由的信息对象
  • next 是一个函数,调用next() 表示放行,允许这次路由导航
  1. 应用场景
  • 当用户拥有访问权限时,直接放行 next()
  • 当用户没有访问权限时,强制其跳转到登录页面 next('/login')
  • 当用户没有访问权限时,不允许跳转到其他页面 next(false)



相关文章
|
11天前
|
JavaScript 前端开发 开发者
Vue.js 框架大揭秘:响应式系统、组件化与路由管理,震撼你的前端世界!
【8月更文挑战第27天】Vue.js是一款备受欢迎的前端JavaScript框架,以简洁、灵活和高效著称。本文将从三个方面深入探讨Vue.js:响应式系统、组件化及路由管理。响应式系统为Vue.js的核心特性,能自动追踪数据变动并更新视图。例如,通过简单示例代码展示其响应式特性:`{{ message }}`,当`message`值改变,页面随之自动更新。此外,Vue.js支持组件化设计,允许将复杂界面拆分为独立且可复用的组件,提高代码可维护性和扩展性。如创建一个包含标题与内容的简单组件,并在其他页面中重复利用。
31 3
|
9天前
|
JavaScript API
vue 批量自动引入并注册组件或路由
vue 批量自动引入并注册组件或路由
|
12天前
|
缓存 JavaScript
vue的多路由项目开发,您还在手动拼接路由名?
【8月更文挑战第20天】vue的多路由项目开发,您还在手动拼接路由名?
39 1
vue的多路由项目开发,您还在手动拼接路由名?
|
19天前
|
JavaScript
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
这篇文章详细介绍了Vue路由中的query参数、命名路由、params参数以及props配置的使用方式,并通过实际项目案例展示了它们在开发中的应用和测试结果,同时解释了`<router-link>`的`replace`属性如何影响浏览器历史记录。
Vue学习之--------路由的query、params参数、路由命名(3)(2022/9/5)
|
19天前
|
缓存 JavaScript 数据安全/隐私保护
Vue学习之--------路由守卫(2022/9/6)
这篇文章详细介绍了Vue路由守卫的概念和应用,包括全局守卫、独享守卫和组件内守卫的实现方法,并通过实际代码示例和测试效果展示了如何对路由进行权限控制,以及Vue路由器的两种工作模式:hash模式和history模式。
Vue学习之--------路由守卫(2022/9/6)
|
19天前
|
存储 JavaScript 前端开发
Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
这篇文章是关于Vue-router路由的基本使用教程,涵盖了安装配置、应用插件、编写路由规则、实现页面跳转和高亮显示,以及一些使用中的注意点和项目实际应用案例。
Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
|
19天前
|
缓存 JavaScript
Vue学习之--------多级路由的使用(2)(2022/9/5)
这篇文章介绍了在Vue中实现多级路由缓存的方法,包括在路由配置中添加meta属性以启用缓存,使用keep-alive组件包裹需要缓存的视图,以及在Vuex中管理缓存视图列表的逻辑。
Vue学习之--------多级路由的使用(2)(2022/9/5)
|
22天前
|
JavaScript
在Vue中使用Avue、配置过程以及实际应用
这篇文章介绍了作者在Vue项目中使用Avue组件库的体验,包括安装配置过程和实际应用示例,展示了如何通过Avue实现动态增加输入框和输入验证的功能。
在Vue中使用Avue、配置过程以及实际应用
|
23天前
|
JavaScript
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
这篇文章介绍了如何在Vue 2或Vue 3项目中实现一个自定义的全局指令`v-dragSwitch`,用于创建可以任意方向拖拽并悬浮的元素,同时包含边界处理的逻辑。
60 2
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
|
28天前
|
JavaScript 前端开发 搜索推荐
Vue 路由的hash模式和history模式有什么区别?
在Vue.js框架中,路由管理是单页面应用(SPA)不可或缺的功能。Vue 路由提供了两种模式:hash模式和history模式,这两种模式主要负责处理URL的变更而无需重新加载整个页面,实现前端路由的功能。
93 19