随记--20200803

204 阅读1分钟

1.vue和nuxt的区别 spa(单页面),通俗点就是整个网站由一个html页面构成。 优点,页面响应快,减轻服务器的压力, 缺点,加载首页会变得比较慢,因为用户首次加载需要先下载SPA框架及应用程序的代码,然后再渲染页面。不利于SEO(Search Engine Optimization)搜索引擎优化

SSR(Server-Side Rendering)服务端渲染 简单理解是将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序 优点,更快的响应速度,容易被爬虫爬到页面数据, 缺点,增加服务器压力,.开发难度增大,.开发难度增大(比如window、docment和alert等,如果使用的话需要对运行的环境加以判断)

2.vue ,router ,asyncData,vue生命周期的对比,vuex mp.weixin.qq.com/s/RgJ56fIdY… doc.liangxinghua.com/vue-family/… (vue的全家桶) (1)生命周期 服务器-客户端 blog.csdn.net/webjhh/arti… 页面请求-服务初始化 中间件运行-检验参数-异步数据处理-客户端渲染 vue的生命周期 (2)asyncData(针对seo) 你可能想要在服务器端获取并渲染数据。Nuxt.js 添加了asyncData方法使得你能够在渲染组件之前异步获取数据。 asyncData方法会在组件(限于页面组件)每次加载之前被调用。它可以在服务端或路由更新之前被调用。 (3)router Nuxt 路由会根据 pages 目录下的文件结构,自动生成路由配置 nuxt-link,编程式跳转 this.$router,query,params 基础路由 动态路由 嵌套路由 动态嵌套路由 过渡动效 中间件 (4)vuex (1)nuxtServerInit Nuxt.js 调用它的时候会将页面的上下文对象作为第 2 个参数传给它(服务端调用时才会酱紫哟)。 当我们想将服务端的一些数据传到客户端时,这个方法是灰常好用的。

3.三大框架 优缺点,使用场景 (1)vue是最轻量的,所以上手比较简单。 vue专注于 MVVM 模型的ViewModel层, 它主要目的是想让大家可以尽可能简单地达到数据和视图的绑定。 如果你的产品需求是轻量级的、开发效率快的,那就选择它吧。(前端开发人员快速构建Web应用)

(2)angular功能比较强大,适用在复杂、重大项目中。 它有自己的一套规则,写出来的项目结构比较清晰,便于大型项目的维护迭代。(后端开发人员构建CURD类型应用)

(3)react,提升开发效率、代码可维护性和可阅读性增强,编码体验不好,jsx(前端开发人员构建复杂的Web应用)

3.小程序 (1)taro

4.工作认知

5.vue和vue3.0,解决什么问题,新的东西 类npm的东西 ,week和相关小程序,vue-element-admin

6.node.js和koa的理解,dva.js (1) www.zhihu.com/question/27… node.js的解释

NodeJS 是基于Chrome V8引擎的 JavaScript 运行环境, NodeJS使用事件驱动,非阻塞型I/O。NodeJS的包管理生态是 NPM,是现在世界上最大的开源程序包库。 JavaScript是一门脚本语言,它需要一个运行环境 JavaScript运行环境是浏览器,也就是JavaScript在网页中才能跑起来。NodeJS之后JavaScript又多了一个运行环境,就是NodeJS。 (就是js的运行环境,客户端就是浏览器) 目前NodeJS大多被用于前端开发的开发环境。

以Webpack作为例子,webpack是一个运行在 NodeJS 端的打包工具, 它帮你把你写的 a.js, b.js, c.js ... 打包成一个 bundle.js。 而这种打包的第一步是读取(文件读取能力)你的a.js, b.js, c.js ...,所以只能在 NodeJS 环境下做。

vue-cli,react-cli 和 ng-cli 都是运行在 NodeJS 环境下的脚手架。 也就是说我们不可以直接在浏览器里运行 vue-cli。因为有了文件读写的能力, 所以 vue-cli 可以帮我们集成(或者打包)vue核心模块,并将我们的代码转义,压缩。

用JS做服务器: Express / EggJS / HAPI / Koa 等等可以了解下 用JS做移动端原生应用:React-Native / NativeScript / WEEX 了解下 用JS做移动端混合应用:PhoneGap / Cordova / Ionic 了解下

(2)koa 一般存在大型项目 作为一个中间层(node) 像淘宝这种,需要首屏优化或者有强烈的seo需求的, 需要浏览器请求到的就是可以直接展示的静态页面的, 或者是后端java提供的api不能直接给前端展示的, 需要经过转换的,才会需要node中间层

(3)egg.js Egg.js是基于Koa.js,解决了上述问题,将社区最佳实践整合进了Koa.js,另取名叫Egg.js, 并且将多进程启动,开发时的热更新等问题一并解决了。 这对开发者很友好,开箱即用,开箱即是最(较)佳配置。

(4)Vue中的Vuex,React中的dva 通信:组件之间如何通信 数据流:数据如何和视图串联起来?路由和数据如何绑定?如何编写异步逻辑?等等

7.基础知识的掌握 (1)什么是闭包:如果一个函数用到了它作用域外面的变量,那么这个变量和这个函数之间的环境就叫闭包 (2)闭包就是能够读取其他函数内部变量的函数。 闭包可以用在许多地方。它的最大用处有两个, 一个是前面提到的可以读取函数内部的变量, 另一个就是让这些变量的值始终保持在内存中。 (3)使用闭包的注意点 由于闭包会使得函数中的变量都被保存在内存中, 内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题, 在IE中可能导致内存泄露。 解决方法是,在退出函数之前,将不使用的局部变量全部删除。

闭包会在父函数外部,改变父函数内部变量的值。
所以,如果你把父函数当作对象(object)使用,
把闭包当作它的公用方法(Public Method),
把内部变量当作它的私有属性(private value),
这时一定要小心,不要随便改变父函数内部变量的值。

(4) www.jianshu.com/p/4e4e42190…

8.hybrid部分 (1)rem和px

9.其余的面试题 zhuanlan.zhihu.com/p/92590306

vue 动态路由使用params传递参数,在this.$router.push() 方法中path不能和params一起使用,否则params将无效。需要用name来指定页面。 vue-router 权限配置