当前位置: 首页 > article >正文

vue2面试题10|[2024-11-24]

问题1:vue设置代理

如果你的前端应用和后端API服务器没有运行在同一个主机上,你需要在开发环境下将API请求代理到API服务器。这个问题可以通过vue.config.js中的devServer.proxy选项来配置。

1.devServer.proxy可以是一个指向开发环境API服务器的字符串:

module.exports = {
  devServer: {
    proxy: 'http://localhost:4000'
  }
}

2.更多的代理控制行为:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: '<url>',
        ws: true,
        changeOrigin: true
      },
      '/foo': {
        target: '<other_url>'
      }
    }
  }
}

问题2:vue项目打包完成之后为什么会出现空白页 ?怎么解决?

1.打包路径:

module.exports = {
    publicPath:'./'  // 此处的路径,由具体情况决定
}

2.路由模式:

hash:#

history:没有#

前端如果自己测试项目,直接将路由模式改为hash

项目上线要求是history模式,该怎么办?

        前端不需要进行处理,只需要告诉后端,前端的路由模式为history,可使用重定向。

router/index.js
const router = new VueRouter({
    mode:"history",
    base:process.env.BASE_URL,
    routes
});

问题3:模式和环境变量

在项目中的根目录新建文件:

        开发环境:.env.development

        生产环境: .env.production

问题4:后端解决跨域问题

// 在routes中的index.js
router.all('*', function(req, res, next) {
    res.header('Access-Control-Allow-Origin','*');
    res.header('Access-Control-Allow-Headers','Content-Type');
    res.header('Access-Control-Allow-Methods','*');
    res.header('Content-Type','application/json;charset=utf-8');
    next();
});

问题5:Vue路由模式

路由模式有两种:history、hash

区别:

        1.表现形态不同

                history:  http://localhost:8080/about

                hash   :     http://localhost:8080/#/about

        2.跳转请求

                (当没有找到页面--404)

                history: http://localhost:8080/id  ----》发送请求

                hash:    不会发送请求

        3.打包后前端自测要使用hash,如果使用history会出现空白页

问题6:介绍一下SPA以及SPA有什么缺点

SPA是什么? 单页面应用

缺点:

        1.SEO优化不好

        2.性能不是特别好

问题7:Vue路径传值

1.显式(在url上是能看到所传递的值)

        http://localhost:8080/about?a=1

        1.1 传 

this.$router.push({
    path:'/about',
    query:{
        a:1
    }
})

        1.2 接

        this.$route.query.a

2.隐式(在url上看不到传递的值)

        http://localhost:8080/about

        2.1 传

this.$router.push({
    name:'About',
    params:{
        a:1
    }
})

        2.2 接

        this.$route.params.a

问题8:路由导航守卫有哪些

全局、路由独享、组件内

使用场景:在进入某个页面之前进行判断拦截(点击订单的时候,先要判断是否已登录,如果已登录就next,若没登录就要跳转到登录页面)

1.全局

        beforeEach、beforeResolve、afterEach

2.路由独享

        beforeEnter

router.beforeEach((to, from, next) => {
    if(){
        next();
    }
    else{
        router.push('/login')
        next('/login')
    }
})

3.组件内(一般使用的少)

        beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave

 问题9:Vue动态路由

并不是所有的项目都会用到动态路由

场景:详情页(文章、商品) ----  多个信息共用一个页面

path:"/list/:id"

router.js配置

{
    path:"/list",
    name:"List",
    children:[
        {
            path:'/list/:id',
            name:'Details',
            component: () => import("../views/Details.vue")
        }
    ],
    component: () => import("../views/List.vue")
}

http://www.kler.cn/a/408298.html

相关文章:

  • 基于STM32的智能家居电器控制系统
  • std::unique_ptr源码中构造函数的偏特化。_Unique_ptr_enable_default_t
  • 【AI系统】GPU 架构回顾(从2018年-2024年)
  • 汇编语言基础
  • 小蒋聊技术:大数据驱动决策——技术落地与业务深度融合
  • torch_geometric使用手册-Creating Message Passing Networks(专题二)
  • .NET新知识点笔记
  • 【STM32】GPIO(超详细)
  • 内存分配与回收策略
  • 设计模式——模板模式
  • (二)Sping Boot学习——Sping Boot注意事项
  • 【踩坑日记】【教程】如何在ubuntu服务器上配置公钥登录以及bug解决
  • 分布式数据库中间件可以用在哪些场景呢
  • 【Y20030006】基于php+mysql的课程学习网站的设计与实现(附源码 配置 文档)
  • w055基于web的服装生产管理的设计与实现
  • 【设计模式】如何用C++实现适配器模式
  • Odoo :免费且开源的农牧行业ERP管理系统
  • 什么是 C++ 中的类型别名和 using 声明?如何使用类型别名和 using 声明?
  • Ultiverse 和web3新玩法?AI和GameFi的结合是怎样
  • RT-DETR融合[ECCV 2018]RCAN中的RCAB模块及相关改进思路
  • 《C++智能合约与区块链底层交互全解析:构建坚实的去中心化应用桥梁》
  • 微知-lspci访问到指定的PCIe设备的几种方式?(lspci -s bus;lspci -d devices)
  • Leetcode 每日一题 15.三数之和
  • Spring Boot OA:构建企业级办公自动化平台
  • 深入解析 EasyExcel 组件原理与应用
  • 基于RFSOC实现LFMCW雷达测距测速