react

基于 React 开发了一个 Markdown 文档站点生成工具

早过忘川 提交于 2020-08-05 06:22:07
Create React Doc 是一个使用 React 的 markdown 文档站点生成工具。就像 create-react-app 一样,开发者可以使用 Create React Doc 来开发、部署 markdown 站点或者博客而不用关心站点环境配置信息。 特性 零配置书写 markdown 文档站点。 markdown 文档支持懒加载以及热加载。 基于文件目录自动生成多层级菜单。 支持一键发布到 GitHub Pages . 使用 create-react-doc 搭建的文档站点 blog 快速上手 执行如下命令: npx create-react-doc my-doc npm install && cd my-doc npm start 然后打开 http://localhost:3000/ 就可以看到文档站点。当准备发布到生产环境时,执行 npm run build 就能将文档站点打包压缩。 使用 create-react-doc 非常容易上手。开发者不需要额外安装或配置 webpack 或者 Babel 等工具,它们被内置隐藏在脚手架中,因此开发者可以专心于文档的书写。 下面提供三种方式来快速创建文档站点: npx npx create-react-doc my-doc npm npm init create-react-doc my-doc yarn yarn

《明日方舟》干员列表实现

无人久伴 提交于 2020-08-05 05:02:58
各位朋友们! W 的活动快要结束了,各位抽到了吗?刚刚又来了一次十连,又歪了,感觉跟 W 要无缘了😭。 这次分享一个 布局小技巧 ,在网页中实现元素的横向排版。 @ARKNIGHTS 这是《明日方舟》的干员列表页面。 仔细观察一下,会发现元素排版从上倒下,如果空间不够,会挤到第二列。 而正常的元素排版是从左到右,如果空间不够,会挤到第二行。 再来个图演示一下效果。 虽然在平时开发中很少会遇到,但是还是有的,比如 bilibili 的菜单。 横向排版代码实现 + ARKNIGHTS 提前声明 另外本次写 html 用的 pug,不清楚 pug 怎么使用的同学看这里: READ MORE+ 一、实现布局 限制父元素高度 。 flex 布局 。 // html pug - var n = 1; ul while n < = 21 li = n++ 复制代码 然后加上一点点样式 // less html , body { width : 100% ; height : 100vh ; background-image : linear-gradient (to top, #accbee 0%, #e7f0fd 100%); overflow : auto; } ul { padding : 0 30px ; height : 100% ; display : flex; flex-wrap

浅谈web前端 隔离:二次封装

微笑、不失礼 提交于 2020-08-05 04:20:28
在一个成熟的项目里,自己开发组件是一种方式。另一种方式,则是使用现成的组件。可是现成的组件往往也不一定能满足我们的需求。如果没有满足自己的“轮子”,那么就造一个。而许多时候,我们也不需要自己去创造一个“轮子”,直接在别人提供的组件上,添加自己需要的特性,便可以完成自己的功能。 这种二次封装的方式,并没有任何不妥。事实上,所有组件都是在基础的HTML组件上进行的二次封装。唯一需要注意的是,原有组件的开源协议(License)是否允许我们用在商业项目上,是否一定要开源。 即使我们直接使用第三方的UI库,也需要对UI组件进行封装,以隔离系统与组件间的依赖。未来,如果依赖的第三方组件库出现了问题,我们只需要替换组件层,不需要进行大规模的代码修改。 组件的二次封装不外乎两种模式,可以直接使用设计模式来说明: 1.中介者模式,用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。对于一个新组件,可以不加修改地直接引用原来的组件。例如,我们定义了一个<aofe-button>组件,它提供了与原来组件一致的属性、输入、和输出。在开发的时候,只需要引用原来的组件即可。未来即使再次替换成新的组件,也只需要引用<aofe-button>即可。 2.装饰者模式,在不改变原类文件及不使用继承的情况下,动态的将责任附加到对象上

React教程:4 个 useState Hook 示例

对着背影说爱祢 提交于 2020-08-05 01:19:07
摘要: React示例教程。 原文: 快速了解 React Hooks 原理 译者:前端小智 到 React 16.8 目前为止,如果编写函数组件,然后遇到需要添加状态的情况,咱们就必须将组件转换为类组件。 编写 class Thing extends React.Component ,将函数体复制到 render() 方法中,修复缩进,最后添加需要的状态。 今天,可以使用 Hook 获得相同的功能,并为自己节省了工作时间。在本文中,主要介绍 useState hook。 useState 做啥子的 useState hook 允许咱们向函数组件添加状态,我们通常称这些为“ hooks”,但它们实际上是函数,与 React 16.8 捆绑在一起。 通过在函数组件中调用 useState ,就会创建一个单独的状态。 在类组件中, state 总是一个对象,可以在该对象上添加保存属性。 对于 hooks,state 不必是对象,它可以是你想要的任何类型-数组、数字、布尔值、字符串等等。每次调用 useState 都会创建一个 state 块,其中包含一个值。 示例1:使用 useState 显示/隐藏组件 这个示例是一个组件,它显示一些文本,并在末尾显示一个 read more 链接,当单击链接时,它展开剩下的文本。 import React, { useState } from

Vue学习总结之Vue的生命周期是怎么运用操作的?本文详解

狂风中的少年 提交于 2020-08-04 21:12:34
写在前面 1.每一篇文章都希望您有所收获,每一篇文章都希望您能静下心来浏览、阅读。每一篇文章都是作者精心打磨的作品。 2.如果您觉得二郎神杨戬有点东西的话,作者希望你可以帮我点亮那个点赞的按钮,对于二郎神杨戬这个暖男来说, 真的真的非常重要 ,这将是我持续写作的动力。您只需要小手轻轻一点,带来的却是温暖了这个作者,给予他前进的动力。 3.除了本文案例,结合多年开发经验我还整理出2020最新企业级高级实战视频教程包括 Vue3.0/Js/ES6/TS/React/node等想学的可进裙 519293536 免费获取,小白勿进哦! 前言 通过上一篇博客的学习,我们初步入门了Vue.js这个渐进式框架,简单的了解了一下声明式渲染、条件与循环、处理用户输入和表单、组件应用构建等相关内容。本篇博客将会延续上一篇博客的内容进行探索Vue.js。那么一起带着一颗平静的心和二郎神杨戬一起学习吧! Vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例 开始的: const vm= new Vue({ //选项 }) 复制代码 当创建一个 Vue 实例时,你可以传入一个 选项对象 ,常见的有: data:对象或者函数 methods:方法,所有需要执行的方法都必须放在methods里面 el:挂载DOM的根元素 computed:计算属性 Vue生命周期的钩子函数

Nodejs中ES Modules如何操作运用?本文详解

╄→гoц情女王★ 提交于 2020-08-04 16:56:40
2020-05-26 Nodejs v12.17.0 LTS 版发布,去掉 --experimental-modules 标志。 1、虽然已在 最新的 LTS v12.17.0 中支持,但是目前仍处于 Stability: 1 - Experimental 实验阶段,如果是在生产环境使用该功能,还应保持谨慎,如果在测试环境可以安装 n install v12.17.0 进行尝试。 2、删除标志 也是将 ESM 变为稳定性而迈出的重要一步, 根据 Nodejs 官方的发布说明,有望在今年下半年(10 月左右)删除 Nodejs 12 中的警告,届时 Node 14 将会成为 LTS 。 3、除了node 。结合多年开发经验我还整理出2020最新企业级实战视频教程,包括 Vue3.0/Js/ES6/TS/React/node等想学的可进裙 519293536 免费获取,小白勿进哦! ES Modules 基本使用 通过声明 .mjs 后缀的文件或在 package.json 里指定 type 为 module 两种方式使用 ES Modules,下面分别看下两种的使用方式: 使用方式一 构建如下目录结构 ├── caculator.js ├── index.js └── package.json 复制代码 package.json 重点是将 type 设置为 module 来支持 ES

程序人生:程序员写简历不要犯这种低级错误!否则第一个淘汰你!

独自空忆成欢 提交于 2020-08-04 16:36:31
我有一件很重要的事情要告诉你,但在这之前,我想先谈谈我自己。我是一个非常有魅力的人,我很注重过程,自学能力很强。我是一个非常强力的团队合作者,对构建和创造新事物充满热情。 最重要的是,我有组织能力,积极主动,能够制作出高质量的作品。我很擅长口头和书面交流,我是一名出色的团队合作者。最后还有一点,我总是能够完成超预期的工作。 这段话是不是像极了某些人简历的开头?招聘人员看到这里是不是已经弃稿了? 直截了当 写简历的时候,你应该直截了当。 避免不必要的麻烦。基本上简历的所有内容都应该直截了当,尤其是个人简介部分。简历开头第一段应该能够在10秒内读完,语气应该高昂激进。 告诉你一个秘密:每个人都可以通过简历展现个人超凡的魅力,每个人都是出色的团队合作者,每个人都有出色的书面交流技巧。每个人都可以高效而有条理。每个开发人员都喜欢学习新事物!你的简历开头写这些简直就是在浪费招聘人员的时间,罗罗嗦嗦写了一大堆有什么用?能让你的简历脱颖而出吗? “话虽没错,但是他们仍然会看我的软技能,不是吗?” 人的注意力只有12秒的神话 有人说,金鱼只有7秒的记忆,而人的注意力也只有8-12秒。尽管英国BBC在几年前揭穿了这个谣言,但说实话,我们有必要研究我们的注意力是否真的有限吗? 假设普通招聘人员只需30秒(已经很长了吧)的时间就能建立对你的第一印象。你再去试试阅读本文的第一段,大约需要13-18秒?况且

辛酸,面试蚂蚁Offer真实经历,从实习,到跳槽,到入职,成长

醉酒当歌 提交于 2020-08-04 16:34:12
实习 当年我还很愚昧,根本不知道很多大厂有实习招聘,直到大三要结束了,学校说: “同学们,你们大四没课,一定要实习啊!” 我才反应过来,喔,原来我要去找实习。 而且自己也从没规划过什么职业方向。我学的是软件工程,但我当时还真不知道自己未来的具体岗位。 安卓?IOS?我根本就没学过。 算法?学校的acm比赛上都没见过我的名字。 C++?大一的课程我早忘的烟消雾散了。 好像就Java Web还有些印象。 所以我实习时投的大多是java开发,当时学校组织了专门的实习招聘会。我晚上找了个自觉不错的简历模版,在招聘会时投简历。 我们的招聘会并没有一线大厂,大部分都是杭州的一些中小企业和创业公司。我当时还问负责招聘的老师: “老师老师,来咱学校的这些公司,有没有特别推荐的啊?” 老师: “阜博通不错。” 结果这家公司当天根本就没来,我回头又去阜博通网站投简历,也是石沉大海,当时觉得很惋惜。 有趣的是现在网上阜博通的口碑差的一逼。也不知道死没死,得亏当时也没去。 招聘会上大搜车也来了,当年大搜车刚从北京来杭州,还是刚创业阶段。我自己对车也比较喜爱,家里也有汽车相关的生意。 另外自己也喜欢创业公司,自觉加入创业公司,没多久说不定自己就是骨干员工,发家致富,指日可待。所以当时特中意大搜车,于是投了简历。 我还有好几个好朋友也投了搜车,后来我们也大多都被叫了过去面试。出乎意料的是,就我没过。

react-native IOS UIWebview 替换 WKWebview

大兔子大兔子 提交于 2020-08-04 14:49:25
RN 0.5.7 版本开始支持使用 WKWebView , <WebView useWebKit={true} /> 设置 true 的时候会使用新的 WKWebView 来代替老的 UIWebView。 PS:若项目中使用了友盟的插件、微信支付、支付宝支付的插件,由于使用了 UIWebview 无法过审。 1、首先在ios目录里面执行命令查看有使用到 UIWebview 的 SDK 或者插件。 grep -r UIWebView . 2、到支付宝、微信、友盟等开放平台、去下载最新的sdk和相关文件,替换就可以了。 最后大家不要忘了把 React.xcodeproj ==> view ==> RCTWebView、 RCTWebViewManager 删除了,否则打包的时候还是会把 UIWebView 打包进去。 来源: oschina 链接: https://my.oschina.net/jack088/blog/4335181

判断文本是否溢出/hover显示全部

北城以北 提交于 2020-08-04 12:25:41
前言 在工作中我们经常会遇到,文字过多,需要用省略号,并且鼠标hover的时候 还需要 显示全部的文字的需求。 正文 文字过多需要用省略号的实现:上代码啦 .ellipsis { width : 100% ; text-overflow : ellipsis ; overflow : hidden ; white-space : nowrap ; display : inline-block //块级标签不需要 } 如何得知这个是否溢出呢?关键词:clientWidth 和scrollWidth: 代码奉上: // 我是在react中实现 componentDidMount () { // 在did mount 中判断是否溢出 const node = this .ref.current // 判断的dom节点,使用ref const clientWidth = node.clientWidth const scrollWidth = node.scrollWidth if (clientWidth < scrollWidth) { this .setState({ // 把是否溢出的状态存在state中,之后从state中拿值使用 overflow: true }) } } // 在普通js中实现,方法一样,取到dom,判断clientWidth 和scrollWidth