• zhongxia245zhongxia245/blog· 1 天前

    对于用不用 GraphQL的思考?

    GraphQL是Facebook2015年开源的数据查询规范,然而现在大部分的 Web Services 都是 RESTFul的。既然已经了RESTFul 的解决方案,为什么还需要使用 GraphQL呢?

    因此这篇文章调研一下社区中的一些看法,让自己对 GraplQL 有一个大概的理解。

    在写这篇文章的时候,还是没有想到 GraphQL 在公司项目的实际应用场景,因此观点会更偏向暂时不用 GraphQL。当然这个问题,根据各个公司的实际情况思考。

    零、总结

    个人项目,或者公司的内部项目,可以尝试使用,但是已有的老项目使用的意义不大。

    1. 开发模式,我们这边
  • zhongxia245zhongxia245/blog· 1 天前

    使用 Prerender 实现纯前端页面的 SEO

    这里主要讲实现一个简单案例的 实现步骤

    1. 启动 Prerender 的 node 服务
    2. 配置 nginx 代理转发
    3. 测试是否配置成功

    需要的环境:

    1. centos 云服务器(本地机器也可以)
    2. nginx

    一、启动 Prerender 的 Node 服务

    git clone https://github.com/prerender/prerender.git
    cd prerender
    npm install
    node server.js
    
    # 这里建议使用 pm2 来启动
    pm2 start server.js --name prerend
  • React Hooks 进阶

    前言

    上一篇简单地介绍了一下 React Hooks 的背景和 API 的使用,这一篇深入探索一下 React Hooks 的实践和原理。

    React Hooks 实践

    模拟 Class Component 的生命周期

    有的时候还是需要根据不同的生命周期来处理一些逻辑,React Hooks 几乎可以模拟出全部的生命周期。

    componentDidMount

    使用 useEffect 来实现,如下:

    useEffect(()=> {
      	//ComponentDidMount do something
    },[]);

    useEffect 第二个参数传

  • yongheng2016yongheng2016/blog· 3 天前
    request-header: reponseType: arrayBuffer
    

    image

    arrayBuffer
    application/octet-stream

  • 不要将常量或跟模版渲染无关的数据放在 data

    之前在开发一个地图应用的时候,需要从接口获取将近 1MB 的点位数据,然后利用 canvas 渲染在地图上,在实际测试中,地图渲染变得非常慢,但发现慢的原因是因为点位数据被放在了 data 里。

    这是因为 Vue 为了能监测到数据的变化,所以深度遍历了 data 里的每个属性,将它们变成了 getter/setter,这个 1MB 大小的点位数据其实并不会被 Vue 的模版消费,只是需要挂载在组件实例上供其它方法访问。

    另外,我们的应用里其实总会有一些不会变的常量,例如一些只需要设置一次的配置,这些配置可能会显示在模版中,但之后都不会再变化了