react

React + Ts 实现三子棋小游戏

北战南征 提交于 2020-10-31 04:53:21
在这里阅读效果更佳 还记得当年和同桌在草稿纸上下三子棋的时光吗 今天我们就用代码来重温一下年少(假设你有react基础,没有也行,只要你会三大框架的任意一种,上手react不难) 游戏规则 双方各执一子,在九宫格内一方三子连成线则游戏结束 九宫格下满未有三子连线则视为平局 你可以点击这里来体验最终效果,样式有点丑,请见谅 准备阶段 建议先全局安装typescript 和 create-react-app(<strong>安装过请忽略</strong>) npm install typescript create-react-app -g 使用typescript初始化项目 create-react-app demo --typescript 初始化成功后ts环境已经配好了,不需要你手动加ts配置</br> 此时就是tsx语法,我们就可以愉快的写ts了</br> src文件夹就是开发目录,所有代码都写在src文件夹下</br> 我们使用sass来写样式,先安装sass npm install node-sass --save 运行项目 npm run start 删掉初始化界面的一些代码 开发阶段 组件化 开发一个项目其实就是开发组件</br> 把一个项目拆分一个个小组件,方便后期维护以及复用 棋子组件 棋盘组件 游戏规则组件 游戏状态组件 react中组件分为类组件和函数组件<

ReactNative(0.54)总结

本小妞迷上赌 提交于 2020-10-31 04:40:22
RN简单来说,就是ReactJs+java+ObjectC混合开发,跨平台App Part1: 1.首先安装RN运行环境需要:JDK,NodeJs,Python2,React-Native-Cli客户端,ANDROID STUDIO(用于安装模拟器),WebStorm(IDE) 2.WS里新建 ReactNative项目,自动生成项目目录结构 Part2: 1.最小组成单位,js文件,入口文件为App.js 2.代码组成: //导入相关组件包 import React,{Component} from "react"; import {View, Image, Text, StyleSheet} from "react-native"; //默认导出的组件 export default class aroundPage extends Component{ //渲染界面函数 render(){ return( //与ReactJs不同这里直接用的是相关的组件 <View style={styles.contain}> <Image source={require("../img/fujing.gif")}></Image> </View> ); } } //样式常量 const styles = StyleSheet.create({ contain:{flex:1

Kendo UI ListView选择功能,让Web开发更轻松

一笑奈何 提交于 2020-10-30 11:01:00
Kendo UI for jQuery R3 2020试用版下载 Kendo UI 目前最新提供 Kendo UI for jQuery 、 Kendo UI for Angular 、 Kendo UI Support for React 和 Kendo UI Support for Vue 四个控件。Kendo UI for jQuery是创建现代Web应用程序的最完整UI库。 默认情况下,ListView的选择功能处于禁用状态。 入门指南 ListView通过将selectable属性设置为“ single”或“ multiple”来支持项目选择功能。 $("#listView").kendoListView({ dataSource: dataSource, selectable: "multiple", template: kendo.template($("#template").html()) }); 高级配置 您还可以检测用户何时通过更改事件获得项目,该事件是通过使用Shift + select组合选择一个或多个项目时触发的。 $("#listView").kendoListView({ change: function(e) { var data = dataSource.view(); var selected = $.map(this.select(),

(二)spring cloud微服务分布式云架构

拟墨画扇 提交于 2020-10-30 10:26:12
spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家: View: H5、Vue.js、Spring Tag、React、angularJs Spring Boot/Spring Cloud: Zuul、Ribbon、Feign、Turbine、Hystrix、Oauthor2、Sleuth、API Gateway、Spring Cloud、Config Eureka、SSO、Spring Cloud、 BUS、Turbine、Zipkin、Cache、Spring Cloud Admin、API Gateway、ELK Spring Cloud Security、 Spring Cloud Stream Component: RoketMQ、Kafka、MongoDB、OSS、Redis、Swagger、Zuul、Label、BASE、Charts、Utils DAO: Spring Data、Mybatis、OSS、 DTO Data Storage: RDBS DFS、NOSQL/Hadoop Infrastructure: LogBack、BUS、Jenkins、Zipkin、Druid

实现B站弹幕很难么?这个开源项目了解一下

拥有回忆 提交于 2020-10-30 04:40:06
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 开源最前线(ID:OpenSourceTop) 猿妹整编 整合自:https://github.com/zerosoul/rc-bullets 说起B站,最有特色的功能就是弹幕,现在弹幕已成为各大视频网站的标配,其实,弹幕最早是诞生于日本的一个二次元网站Niconico。后来A站和B站将其引入,开启了国内弹幕文化的先河。 相比点赞、转发、评论,弹幕的形式让用户的互动性更强,因此也更受大家喜爱,很多人已经养成了看视频必开弹幕的习惯。 假如程序员自己要实现一个弹幕功能会难么?已经有人在Github上造了一个——rc-bullets。rc-bullets是一个基于 CSS3 Animation,使用 React 构建,可扩展,高性能的弹幕组件。 rc-bullets已经在Github上标星 331 ,累计分支 33 。(详情:https://github.com/zerosoul/rc-bullets) rc-bullets具有以下特性: 支持传入 React 组件,灵活控制弹幕内容和 UI,并提供一个默认样式组件:<StyledBullet/> 弹幕屏幕管理:清屏,暂停,隐藏(后续可能会加入针对单个弹幕的控制) 弹幕动画参数化:运动函数

[Mvp.Blazor] 动态路由与钩子函数

白昼怎懂夜的黑 提交于 2020-10-30 01:54:24
(Blazor组件的生命周期函数) 一直在学习也没有停下脚步,用着脑子还是挺好的,感觉可以更脚踏实地一下。 最近偶尔也继续看了看Blazor,毕竟我也开源了一个项目嘛,基本我正式开源的项目都会负责到底,所以该有的功能都要有的 (https://github.com/anjoy8/Blog.MVP.Blazor) 通过几天的学习,感觉愈发的感觉这门技术很棒,主要是很对我的脾气,用c#开发前端组件, 生成交互式客户端 Web UI 的框架 ,一直是我连想象都不敢想的事情,不仅仅是它拥有 组件继承、数据绑定、js交互、组件通讯 等等前端比较亮眼的功能,最让我开心的就是他同样也有自己的 生命周期 ,也就是文章的标题——钩子函数。要知道生命周期在前端框架开发中,还是有举足轻重的地位的。 那咱们暂时先不说这个钩子,先说下今天要干的事情,如何实现动态路由。 1、为什么要实现动态路由? 咱们先看看我之前是怎么做的,在blazor项目中,我们是这样设计的: 除了新增和删除外,就是展示页面,主要是按照一定的分类进行展示,所以呢,当时我为了图省事,每一个分类一个页面,每个页面发送同样的请求,所以基本的代码都一样: 每个页面定义各自的路由地址: @page "/aspnetcore-abp-blazor/2020" @page "/identityserver4/2020" @page "/azure

Vue 超清晰思维导图,带你详细梳理知识点

◇◆丶佛笑我妖孽 提交于 2020-10-29 11:21:43
点击上方“ 逆锋起笔 ”, 公众号回复 PDF 领取大佬们推荐的学习资料 Vue思维导图目录 MVC 与 MVVM 的区别 Vue 基本代码结构 Vue 指令 Vue 组件 class 和 style 动态绑定 computed 计算属性 EventBus filter 过滤器方法 Vue 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。( Vue 有配套的第三方类库,可以整合起来做大型项目的开发) 0.MVC 与MVVM的区别 MVC 是后端的分层开发概念; MVVM 是前端视图层的概念,主要关注于 视图层分离 。 MVVM 把前端的视图层分为了三部分: Model , View , VM ViewModel 1.Vue基本代码结构 const vm = new Vue({ el : '#app' , //所有的挂载元素会被 Vue 生成的 DOM 替换 data:{ // this->window }, methods:{ // this->vm}, //注意,不应该使用箭头函数来定义 method 函数 ,this将不再指向vm实例 props:{} , // 可以是数组或对象类型,用于接收来自父组件的数据 //对象允许配置高级选项,如类型检测、自定义验证和设置默认值 watch:{ // this->vm}, computed:{},

我的react组件化开发道路(二) 分页 组件开发

拈花ヽ惹草 提交于 2020-10-28 14:33:41
上一篇文章 主要写了关于react组件化开发的一些基本配置,慢慢的深入到每个组件的详细介绍中,今天我们就来分享react的分页组件 组件基本数据 current:当前页码,默认是第一个 pageSize:每页显示的页数,默认是10页 pagesLength: (很重要) 这个参数的主要作用是用于控制分页的按钮个数,默认是9页,当数据小于90条(因为每页是10条数据,则页数小于9页),则所有的页码直接显示,如图: 如果大于9页,则采用显示部分的形式,如图显示: 下面来具体介绍内部逻辑。 调用函数初始化 在构造函数里面初始化基本调用的函数,主要有:上一页、下一页、点击页码直接跳转、前五页、后五页,基本调用函数介绍完,则要开始着手分页的显示逻辑了。 _initMPagination()函数负责分页的逻辑,先处理基本数据,pageSize,current,还要计算总页数(总页数需要向上取整),现在我们得到了:当前页码,总页数,每页大小(即每页显示数据的条数)。那么接下来需要做的处理就是判断总页数和页面显示页数的大小,如果总页数小于等于页面显示页数的大小,则直接全部显示,如图: 需要为每一个页码绑定一个唯一的key值,判断当前的页面是否等于i,给当前页码不同的样式,并且为每一个页码绑定click函数,这样点击页码的时候能获取到正确的索引值,这个相对比较简单,如果总页数大于页面显示页数的大小

React Hooks简介

谁说胖子不能爱 提交于 2020-10-28 10:54:03
感谢支持ayqy个人订阅号,每周义务推送1篇( only unique one )原创精品博文,话题包括但不限于前端、Node、Android、数学(WebGL)、语文(课外书读后感)、英语(文档翻译) 如果觉得弱水三千,一瓢太少,可以去 http://blog.ayqy.net 看个痛快 一.出发点 在 React 现有的组件模型下,存在很多难以解决的问题: 难以跨组件复用状态逻辑 组件复杂度高难以理解 Class 的诸多弊病 …… 而 Hooks, 肩负着破局使命 组件间逻辑复用 组件间逻辑复用一直是个问题,Render Props、Higher-Order Components等常用 套路 模式都是为了分离横切关注点(Cross-cutting concern),复用诸如: 日志 缓存/同步/持久化 数据校验 错误捕获/异常处理 的逻辑,目的是 将横切关注点与核心业务逻辑分离开 ,以便专注于业务逻辑 P.S.关于切面、关注点等 AOP 概念的更多信息,见AOP(Aspect-Oriented Programming) 然而,HOC 与 Render Props 虽然能以组件形式分离横切关注点,但也带来了一些新问题: 扩展性限制 Ref 传递问题 Wrapper Hell 之所以会出现这些问题,根本原因在于: 细粒度代码复用不应该与组件复用捆绑在一起

React从入门到放弃(2):React简介

断了今生、忘了曾经 提交于 2020-10-28 09:58:32
本系列将尽可能使用ES6(ES2015)语法。所以均在上节webpack的基础上做开发。 React是Facebook开发的一款JS库,因为基于Virtual DOM,所以响应速度快,以及支持跨平台。 (实际上,Virtual DOM在某些情况都会损耗一些性能在diff上,但相比其他MVVM框架比起来性能影响很少,同时大幅提升开发效率也是目前推荐的方式) 安装 安装React: npm i -S react react-dom 安装Babel: npm i babel-loader babel-preset-react babel-plugin-import -S HelloWorld import React from 'react'; import ReactDOM from 'react-dom'; ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root') ); JSX JavaScript 的一种扩展语法。我们推荐在 React 中使用这种语法来描述 UI 信息。 JSX支持嵌入表达式:花括号 把任意的 JavaScript 表达式 嵌入到 JSX 中 JSX是Javascript:比起 HTML, JSX 更接近于 JavaScript, React DOM 使用驼峰