Vue.js + Vuex + TypeScript 实战项目开发与项目优化

  1. 说说 application/json 和 application/x-www-form-urlencoded 二者之间的区别。

    application/x-www-form-urlencoded 方式是 Jquery 的 Ajax 请求默认方式,这种方式的好处就是浏览器都
    支持,在请求发送过程中会对数据进行序列化处理,以键值对形式,例如:

    key1=value1&key2=value2 的方式发送到服务器。如果用 Jquery,它内部已经进行了处理,如果自己写原生的 Ajax 请求,就需要自己对数据进行序列化。

    application/json,随着 json 规范的越来越流行,并且浏览器支持程度原来越好,许多开发人员将 application/json 作为请求 content-type,告诉服务器请求的主体内容是 json 格式的字符串,服务器端会对 json 字符串进行解析,这种方式的好处就是前端人员不需要关心数据结构的复杂度,只要是标准的 json 格式就能提交成功,application/json 数据格式越来越得到开发人员的青睐。

  2. 说一说在前端这块,角色管理你是如何设计的。

    创建路由列表和菜单列表(左侧/顶部),两者格式相似,菜单就是多些图标啥的字段

    将路由列表分为两部分:登录后才能看的(权限列表)和未登录也能看的(游客列表)

    为权限列表里的每个路由添加角色数组字段,里面的角色才能访问此路由

    在路由配置文件中添加跳转到新页面前的导航钩子,在里面根据用户登录后返回的角色信息,与权限列表进行比对,计算得出其所能访问的路由列表,保存到 vuex 中

    通过 router.addRoutes() 方法,将两个列表拼接起来(Vue 框架)

    同样对比计算得出可见的菜单列表,赋值并保存到 vuex 中

    显示页面

  3. @vue/cli 跟 vue-cli 相比,@vue/cli 的优势在哪?

    首先说一些 vue-cli 这些工具的初衷吧: 这些工具就是为了让开发者能够开箱即用快速地进行应用开发而开发的,它们秉承的是“约定大于配置”思想,简单说就是”能不配置的就不配置,你就按照我的方式来,也不要去争论这个好不好,快速进行业务开发才是正经事”. 它们不建议你去配置,但也不会拦着你去配置。

    另外 Webpack 对初学者并不是十分友好,‘又长又臭’的配置,普通开发者很难写入定义良好,性能优化的配置。不然就不会各种 cli 工具冒出来了,比如 parcel,create-react-app。这些工具都宣称零配置,目的就是让开发者能够愉快的进行代码开发。

  4. 详细讲一讲生产环境下前端项目的自动化部署的流程。

  5. 你在开发过程中,遇到过哪些问题,又是怎样解决的?请讲出两点。

    需求不明确、自己对需求存在误区和不理解

    对需求有不同见解的地方或者需要改进,

    另外就是对设计有类似的问题。

  6. 针对新技术,你是如何过渡到项目中?