Vue-cli搭建与router路由护卫实战
179 浏览量
更新于2024-08-30
收藏 338KB PDF 举报
"搭建Vue项目并实现Vue-router路由保护的教程"
本文将引导你通过Vue-cli搭建一个Vue项目,并逐步实现Vue-router的路由保护。首先,确保安装Vue-cli全局工具,对于Mac用户,使用命令`sudo npm install -g @vue/cli`。Vue-cli是一个快速的脚手架工具,能帮助我们构建Vue应用。
1、Vue-cli基础使用
1.1 创建项目
使用Vue-cli创建名为`vue-routes`的新项目,输入命令`vue create vue-routes`。这将自动下载和配置所需的依赖项。
1.2 启动项目
项目创建成功后,运行`yarn serve`启动开发服务器。项目将在`http://localhost:8080/`下运行,展示欢迎页面。
1.3 自定义配置
为了自定义项目配置,创建`vue.config.js`文件。在这个例子中,设置了项目标题`title`为"双11剁手啦",以及自定义端口号`port`为1111。配置文件内容如下:
```javascript
module.exports = {
publicPath: '/wxy',
devServer: {
port: '1111',
},
configureWebpack: {
name: 'title',
},
};
```
完成配置后,需要重启`yarn serve`以使更改生效。
2、SVG图标配置
要配置SVG图标,首先准备一个SVG文件(例如`src/icons/svg/hg.svg`)。接着,通过`yarn add svg-sprite-loader`安装SVG加载器。在`vue.config.js`中,我们需要修改webpack配置,将SVG规则排除`src/icons`目录,同时添加新的规则来处理SVG图标。
```javascript
const path = require('path');
function resolve(dir) {
return path.join(__dirname, dir);
}
module.exports = {
// ...
chainWebpack(config) {
config.module
.rule('svg')
.exclude.add(resolve('src/icons')) // 排除icons目录
.end();
config.module
.rule('icons')
.test /\.svg$/ // 匹配.svg文件
.include.add(resolve('src/icons')) // 包含icons目录
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({ /* svg-sprite-loader 的选项 */ });
},
};
```
3、Vue-router路由保护
Vue-router是Vue.js官方的路由管理库,用于实现单页应用的路由控制。路由保护通常涉及未登录用户访问受保护页面时的重定向。以下是一个简单的路由卫兵(Guard)实现:
首先,安装Vue-router:
```
yarn add vue-router
```
然后,在`src`目录下创建`router`文件夹,再创建`index.js`,设置路由配置:
```javascript
import Vue from 'vue';
import Router from 'vue-router';
import HelloWorld from '@/components/HelloWorld';
import ProtectedPage from '@/components/ProtectedPage';
Vue.use(Router);
export default new Router({
routes: [
{ path: '/', component: HelloWorld },
{ path: '/protected', component: ProtectedPage, meta: { requiresAuth: true } },
],
});
```
创建一个全局守卫(Guard)以检查用户是否已登录:
```javascript
// src/main.js
import router from './router';
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isUserAuthenticated()) {
next('/'); // 如果用户未登录,重定向至首页
} else {
next(); // 其他情况,允许导航
}
});
function isUserAuthenticated() {
// 这里应检查实际的用户认证状态,例如检查本地存储或会话存储
return false; // 作为示例,始终返回false
}
```
现在,当你尝试访问`/protected`路径而用户未登录时,将会被重定向回首页。请根据实际应用需求替换`isUserAuthenticated`函数,以实现真实的用户认证逻辑。
通过以上步骤,你已经成功地搭建了一个Vue项目,并实现了基本的路由保护功能。继续探索Vue-router的高级特性,如动态路由匹配、命名视图和路由懒加载,将有助于你构建更复杂的单页应用程序。
2021-01-08 上传
2021-04-29 上传
2021-04-14 上传
2021-03-11 上传
2023-07-27 上传
2020-08-27 上传
点击了解资源详情
2021-05-10 上传
2019-03-17 上传
weixin_38750406
- 粉丝: 6
- 资源: 894
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案