react

前端教程丨手把手教你用 Next.js 搭建个人博客,从入门到吃鸡

删除回忆录丶 提交于 2020-08-14 08:24:00
React.js 是现今前端最火的应用框架之一,而 Next.js 正是 React.js 领域最优秀的服务端渲染框架之一。 基本上,现在所有的前端主流形式,从服务端渲染 APP,静态站到桌面应用等,Next.js 都能胜任。 不论是国内还是国外,都有不少开发者和企业在使用 Next.js 开发网站,比如: 腾讯新闻移动端门口站腾讯网 大名顶顶的Hulu 视频站 世界最受欢迎的 React UI 组件库Material-UI 魅族官网首页魅族 今天带来一门完整的 Next.js 框架实战课程,作者 luffyZh 老师是网易的高级前端开发工程师,手把手带你逐步掌握 Next.js 框架, 最终完成静态博客+全栈动态博客系统的搭建。 最终项目效果: 个人静态博客系统 全栈动态博客系统 如果你是 React.js 开发者并且想学习一个服务端渲染框架,那么本课程是你很好的选择。 课程分为三个阶段: 一:了解服务端渲染并且初步认识 Next.js,学习使用 Next.js 的各种 API 以及内置约束规则,进行简单的页面开发; 二:学习用多种方式部署 Next.js 应用,满足小型个人和大型企业的各种业务场景; 三:从实践角度出发使用 Next.js 开发两个应用系统,第一个是静态个人博客系统,第二个是全栈开发包含前后端以及数据库的动态博客系统。 课程地址: Next.js 轻量级

MAC OS 10.15 关于vue脚手架创建 && npm install时报错 && gyp ERR! configure error

我们两清 提交于 2020-08-14 08:18:07
重大更新!!!!!! 如果下文中的描述符合你的问题 直接运行下面两行代码 1、 xcode-select --install 2、sudo xcode-select --switch /Library/Developer/CommandLineTools 如果不行看下面链接 https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md#The-acid-test 1、准备 vue create projects 、node和cli版本如下 2、本来一切很平静 上了个厕所回来发现 屏幕上赫然出现了一堆错误 3、之前window上没得这样的问题 瞬间慌了 但是!!此时我看到一个明显的字段 Xcode 这特喵不是IOS开发的IDE嘛?于是赶紧把这张截图发给IOS老哥 。。。。IOS老哥说确实是这样的。。但是他也不知道为什么vue脚手架要用到这个东西。啊,几经辗转终于在好友里面找到了两位前端大佬,给出了如下答复 4、看到大佬给出的答复 我好像明白了些什么 gcc在php编译的时候也需要这个啊 于是乎按照这个思路 又去百度了一下 找到了这篇文章 地址: https://www.bootschool.net/article/5e4f7a5df60a317efe5ba8a1/node-project-error-xcode

毕业一年妹纸 ~所有面试题目吐血整理!(持续更新)

爷,独闯天下 提交于 2020-08-14 07:29:38
一转眼已经毕业一年了这一年的工作经历真是有苦有甜,还是很坎坷的,还好所有的经验都整理了下来~ 分享给同一时期的伙伴们~ 大佬可以绕行🤣 css 盒子模型 标准模型和怪异模型(重点在于width的计算) BFC 1.BFC的作用 1.清楚浮动 2.防止相邻BFC元素出现边距重叠 复制代码 2.BFC的触发条件 如何隐藏一个元素,只通过css方式 1.display:none 2.opacity:0 3.visibility:hidden 复制代码 让一个元素水平居中(元素可能为定高或者不定高) <div class= 'parent' > <div class= 'children' ></div> </div> -- 定高:-- 1. 父级:position:relative 子级:position:absolute; top:0; bottom:0; right:0; left:0; margin: 0 auto; 2. 父级:position:relative 子级:position:absolute; top:50%; left:50%; margin-left:自身宽的一半; margin-top:自身高的一半; -- 不定高 -- 1.absolute + transform 2.flex 3.table display: table-cell; vertical

Serverless 应用实践及典型案例解析

天大地大妈咪最大 提交于 2020-08-14 05:26:11
本文整理自 ServerlessDay · China 大会 - 《Serverless 应用实践及典型案例解析》的分享,讲师为腾讯云 Serverless 高级架构师卢萌凯、猎豹移动前端总监董文枭、江娱互动技术经理董文强、新东方高级工程师李垦。 本文主要分为四部分: Serverless 的优势和价值 基于 Serverless 构建 REST API Serverless 和服务端渲染的结合 Serverless 构建音视频转码方案 Serverless 的优势和价值 为什么我们投入这么大时间和精力来做 Serverless 呢?因为我们坚信云计算的未来趋势之一就是 Serverless。因为 Serverless 让云服务的应用变得更加简单、高效。比如用云主机部署应用的时候,不仅要搭建和维护环境,同时也要评估业务的资源用量,尤其是对于运营类的活动,如果一旦评估的不准确,要么会造成资源的巨大浪费,要么服务可能会被打爆,甚至停服下线。 而 Serverles 能够做到按需使用,让业务完美的弹性伸缩,对于运维同学来讲,简直不能更爽。而且和预付费的实例不同,Serverless 是 pay as you go的模式,只有当业务运行时才会占用资源,只有源被占用了才会计费,简单来讲,就是,我实际用多少就付多少钱。这种计费模式对于存在明显波峰波谷的服务,优势相当明显。 另外,云计算的发展

emulate pressing a keyboard key

徘徊边缘 提交于 2020-08-14 03:45:59
emulate pressing a keyboard key SendInput() not equal to pressing key manually on keyboard in C++? I wanted to write a c++ code to emulate pressing a keyboard key "A": // Set up a generic keyboard event. ip.type = INPUT_KEYBOARD; ip.ki.wScan = 0; // hardware scan code for key ip.ki.time = 0; ip.ki.dwExtraInfo = 0; // Press the "..." key ip.ki.wVk = code; // virtual-key code for the "a" key ip.ki.dwFlags = 0; // 0 for key press SendInput( 1, &ip, sizeof(INPUT)); // Release the "..." key ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release SendInput( 1, &ip, sizeof(INPUT)); It

react hook 实践中遇到的问题

折月煮酒 提交于 2020-08-14 03:30:56
参考 https://juejin.im/post/5ec7372cf265da76de5cd0c9 主要思想: 每一帧都有独立的状态 每一帧都有独立的Effect 每一帧都有独立的变量 使用ref获取最新值 点击show, 多次点击add, 2s后 输出的值依然是点击show时的值, 而不是最新值, 即使使用对象传递也不会更新, 必须使用ref import React, { useState, useEffect, useRef } from "react"; const A = ({ count, obj }) => { const ref = useRef(count); ref.current = count; const show = () => { setTimeout(() => { console.log("A count", count, obj, ref); }, 2000); }; return ( <div> A count:{count} <button onClick={show}>show</button> </div> ); }; export default () => { const [a, setA] = useState(0); const [b, setB] = useState({ val: 0 }); const add = () =

Hacker News 简讯 2020-07-21

好久不见. 提交于 2020-08-14 03:28:33
更新时间: 2020-07-21 23:00 AMD Launches 12 Desktop Renoir Ryzen 4000G Series APUs: But You Can’t Buy Them - (anandtech.com) AMD推出12台雷诺阿雷森4000克系列台式机:但你不能买 得分:46 | 评论:31 Common mistakes writing React components with hooks - (lorenzweiss.de) 书写常见错误用钩子反应组件 得分:65 | 评论:38 Monitoring your own infrastructure using Grafana, InfluxDB, and CollectD - (serhack.me) 使用Grafana、InfluxDB和CollectD监控您自己的基础架构 得分:114 | 评论:78 Invert, Always, Invert - (anup.io) 反转,总是,反转 得分:234 | 评论:64 Systems Design for Advanced Beginners - (robertheaton.com) 面向高级初学者的系统设计 得分:650 | 评论:73 AI in physics: are we facing a scientific

Taro 3 正式版发布:开放式跨端跨框架解决方案

有些话、适合烂在心里 提交于 2020-08-14 03:15:26
作者:凹凸曼 - yuche 从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验。今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Taro 未来的更多两年能像一名共产主义战士一样经受住更多的考验。以下是 Taro 3 的一些新增特性: 跨框架:React、Nerv、Vue 2、Vue 3、jQuery 在旧版本的 Taro,我们以微信小程序的开发规范为基准,使用 React/JSX 的方式来进行开发。而在 Taro 3,我们把这一思路量化为一个编程模型: 设微信小程序生命周期为一个 interface ,不同的框架实例的生命周期虽然不尽相同,但我们可以根据框架生命周期分别新建一个 class 去 implements 小程序生命周期的 interface 。相应地,小程序的组件/API/路由规范可以使用同样的思路和模型让不同框架的代码,运行在不同的端上: 在 Taro 3 中我们内置了 React、Nerv、Vue 2、Vue 3 四种框架的支持,开发者可以通过 taro init 命令创建对应的模板,并编写与框架本身生命周期、调用方法合乎一致的代码(idiomatic code),在语法上也没有任何的限制。 在四类框架之外,Taro 3 还提供 jQuery-like API 的支持

【译文】【前端架构鉴赏 01】:Angular 架构模式与最佳实践

自作多情 提交于 2020-08-14 01:17:30
本文原文: Angular Architecture Patterns and Best Practices (that help to scale) 译者序 这是作为译者我想说的话,并非原文中的内容。 我猜此时此刻你心里的疑问一定是:为什么是 Angular,不是 React,不是 Vue,不是 Flux,不是 Redux ? 因为你已经对它们太熟悉了。 我个人作为开发者而言最希望是能够汲取到“圈外”的“营养”,这样才能给我的成长带来帮助。 我想对各位也是一样。 你不用担心因为不会 Angular 而看不懂这一些列文章,它们基本上谈论的是应用架构——关于设计、组织、抽象,很少会落到具体的实现,即使有,连蒙带猜也能推测出一二。这也能从侧面说明我衷心想推荐这些佳作的原因:通过大段大段的代码阐述很容易;难的是几乎不用代码来跨越语言的说明更高层次的东西,比如 Martin Fowler, Uncle Bob Martin 他们的文章就能如此。 我不评价框架的流行和好坏,我只是把一切呈现在各位的眼前。它们并非和 Flux,Vuex 大相径庭,反而你们会看到它们的影子,但更多的是不一样的东西。我在里面看到了更好的职责划分和抽象。 在文中我会以引用的格式和“译者注”开头穿插一些我的个人备注和带给我启发性的问题,你可以理解为文章的“评论音轨”,但其中问题我不会给予回答。你也可以忽略这些评论

理解TypeScript中的infer关键字

大憨熊 提交于 2020-08-13 18:38:44
前言 infer 是在 typescript 2.8 中新增的关键字,距离现在 3.9.3 已经有两年出头了,趁着今天刚好使用了 infer ,所以好好整理一番 infer infer 可以在 extends 的条件语句中推断待推断的类型 例如在文档的示例中,使用 infer 来推断函数的返回值类型 type ReturnType<T> = T extends (...args: any []) => infer R ? R : any ; type func = () => number ; type variable = string ; type funcReturnType = ReturnType<func>; // funcReturnType 类型为 number type varReturnType = ReturnType<variable>; // varReturnType 类型为 string 复制代码 在这个例子中, infer R 代表待推断的返回值类型,如果 T 是一个函数,则返回函数的返回值,否则返回 any 仅仅通过这一个例子,是很难看出 infer 是用来干什么的,还需要多看几个例子 infer解包 infer 的作用不止是推断返回值,还可以解包,我觉得这是比较常用的 假如想在获取数组里的元素类型,在不会 infer 之前我是这样做的 type