react

React Native不同设备分辨率适配和设计稿尺寸单位px的适配

天涯浪子 提交于 2020-02-08 09:01:01
React Native中使用的尺寸单位是dp(一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px),而设计师使用的是px, 这两种尺寸如何换算呢? 官方提供了PixelRatio进行pt到px的转换 import { PixelRatio } from 'react-native'; const dp2px = dp=>PixelRatio.getPixelSizeForLayoutSize(dp); const px2dp = px=>PixelRatio.roundToNearestPixel(px); 设计师给你一个尺寸,比如100px*200px的View,按照下面的方式可实现设计还原: View style={{width:px2dp(100),height:px2dp(200),backgroundColor:"red"}} 如果每个地方都这样写会很麻烦,于是我们就有了下面转换代码 import {PixelRatio,Dimensions}} from 'react-native'; const dp2px = dp=>PixelRatio.getPixelSizeForLayoutSize(dp); const px2dp = px=>PixelRatio.roundToNearestPixel(px); let designSize =

练手的React静态博客项目

谁说胖子不能爱 提交于 2020-02-08 06:00:08
React练手博客项目 如果被人看到了觉得还行的话进去点个star把 有什么问题的话可以直接评论,希望大家多批评指正,作为前端小菜鸟的我还是要多多学习鸭 来源: CSDN 作者: 月半叫做胖 链接: https://blog.csdn.net/qq_24724109/article/details/104214960

React图片懒加载

喜你入骨 提交于 2020-02-08 01:30:53
React图片懒加载 话不多说了,创建一个LazyLoad.js的React组件,然后将下面的代码复制过去: import React from 'react' // import './lazyload.css' // threshold const threshold = [ 0.01 ] class LazyLoad extends React . Component { constructor ( props ) { super ( props ) this . state = { io : null , refs : null , images : null , loading : true } this . handleonload = this . handleonload . bind ( this ) } UNSAFE_componentWillMount ( ) { var { ImgClassName , src , alt , ImgStyle } = this . props . state ImgClassName = ImgClassName ? ImgClassName : 'lazyload-img' alt = alt ? alt : 'antd-lazyload' var images = [ ] var refs = [ ] const

转载【React Native】 中设置 APP 名称、应用图标

南楼画角 提交于 2020-02-08 01:27:05
修改名称   应用程序的名称默认是使用 react-native-cli 创建项目时的名称。修改的方式很简单,找到相应的配置然后修改即可。例如,我初始化的项目名称叫 test,现在想修改成 测试程序。 Android   编辑 android/app/src/main/res/values/strings.xml 文件:   <resources>     原始 <string name="app_name">test</string>     修改 <string name="app_name">测试程序</string>   </resources> iOS   编辑 ios/自己起的项目名称/Info.plist 文件:   <key>CFBundleDevelopmentRegion</key>   <string>en</string>   <key>CFBundleDisplayName</key>   <string>rnproject</string>   改成   <key>CFBundleDevelopmentRegion</key>   <string>en</string>   <key>CFBundleDisplayName</key>   <string>测试程序</string> 修改应用图标   选择一张你喜欢的照片,然后上转到 图标工厂 在线生成

AntDesign(React)学习-11 简单使用mobx

大憨熊 提交于 2020-02-07 23:09:57
MobX 是由 Mendix、Coinbase、Facebook 开源和众多个人赞助商所赞助的。 mobx和redux类似,也可以用来进行状态管理,并且更简单,更灵活。初次研究,先实现一个最简单的功能修改一个字符串值 官网:https://cn.mobx.js.org 1、安装 yarn add mobx-react --saveyarn add mobx --save ... 2、添加import import { observer } from 'mobx-react'; import { observable, computed, action } from 'mobx'; 3、修改UserRole代码如下 import React from 'react'; import { observer } from 'mobx-react'; import { decorate,observable, computed, action } from 'mobx'; import { Button,Input} from 'antd'; @observer class UserRole extends React.Component { constructor(props) { super(props); } @observable roleName = "123";

react-devtools安装调试

孤街浪徒 提交于 2020-02-07 21:24:41
初学react,Chrome F12调试,需要一款插件react-devtools。 网上大多对于翻墙不利索的同学大多才用了git源码、npm本地手动打包Chrome拓展程序。如: https://www.jianshu.com/p/3d96279dead0 ; 奈何小弟刚刚一直build失败,不得其解,不得不借用一个“神器”绕道走到罗马,那就是“Ghelper”,官方地址: http://googlehelper.net/ 下载最新版本,解压后看见贴心的文档《中国大陆安装方法.txt》,按照其中步骤后,就可以自由浏览Chrome F12调试,需要一款插件react-devtools。 网上大多对于翻墙不利索的同学大多才用了git源码、npm本地手动打包Chrome拓展程序。如:https://www.jianshu.com/p/3d96279dead0 ; 奈何小弟刚刚一直build失败,不得其解,不得不借用一个“神器”绕道走到罗马,那就是“Ghelper”,官方地址:http://googlehelper.net/ 下载最新版本,解压后看见贴心的文档《中国大陆安装方法.txt》,按照其中步骤后,就可以自由浏览Chrome网上应用商店,搜索react devtools,点击安装,大功告成,是不是很简单呢?哈哈 在使用react技术的网站,图表会自然点亮。有么有很智能

React学习笔记总结

匆匆过客 提交于 2020-02-07 20:36:14
1:react简介 react 是专注于view层的 UI 库。 优点: 1 、跨平台。Learn Once , Write Anywhere . 跨平台是react最大的亮点。react - native提供相应的组件如view、Text、TextInput等,组件依赖react如生命周期、状态。 react - native基于Virtual DOM 渲染出原生控件,react组件可映射为对应的原生控件。可输出Web Dom , ios控件,安卓控件。 2 、组件化。组件化的好处在于可以隔离,每个组件都有自己的生命周期,便与管理维护、修改、测试和阅读 3 、Virtual DOM 。真实页面对应一个 DOM 树。react把真实 DOM 树转换成javascript对象树,也就是Virtual DOM 。 每次数据更新都将重新计算Virtual DOM 并与上一次生成的Virtual DOM 做对比,对发生变化的部分做“批量更新”, 使用shouldComponentUpdate生命周期回调来减少数据变化后不必要的Virtual DOM 对比过程,提升性能。 ( 构建与更新都在内存中完成 ) 4 、函数式编程。 1 )代码简洁,开发快速。 2 )接近自然语言,易于理解。 3 )更方便的代码管理。 4 )易于 "并发编程" 。 (注:函数是 "第一等公民"

关于react hook中数组state的更新

本秂侑毒 提交于 2020-02-07 09:00:08
categories: [前端,项目问题] thumbnail: /images/fe/hanshu.jpeg 关于react hook中数组state的更新 react hook只用了useState钩子函数来给函数(无状态)组件添加状态,今天在写一个小应用的时候就遇到了问题,我设置了一个状态为messagearr数组用来存储当前收到的消息,默认为空。当接收到新消息,则使用setMessagearr进行更新,但却遇到了问题 我们已经知道react hook更新数组不是往原数组里添加项目,而是要用一个新数组完全替代,所以不能直接这样写 messagearr.push(newitem) setMessagearr(messagearr) 但是我用下面这个写法出现了问题 import React , { useEffect , useState } from 'react' function Index ( ) { const [ messagearr , setMessagearr ] = useState ( [ ] ) //接收到新消息时调用这个函数 function changeMessageArr ( e ) { setMessagearr ( [ ... messagearr , { from : data . from , to : data . to , message

React:axios、proxy(服务器代理)

我怕爱的太早我们不能终老 提交于 2020-02-07 04:39:04
axios: npm install axios --save import React, { Component } from 'react'; import './App.css'; import axios from "axios" class App extends Component { render() { return ( <div className="App"> </div> ); } requestData=()=>{ // 发送网络请求 // 1.原生的javascrip的XMLHTTPRequest // 2.jquery中的ajax // 3.axios(比较轻量级的) // 不允许你跨域请求: // 解决: // 1.CORS 头缺少 'Access-Control-Allow-Origin') // 2.利用 jsonp // 3.服务器代理 proxy axios.get("/api/test?name=zhagnsan&age=18").then(function(res){ console.log(res.data); }).catch(function(err){ console.log(err); }) } } export default App; proxy:(配置在package.json中) 配置单个跨域 "proxy": { "/*

vscode生成react中js文件模板

北城余情 提交于 2020-02-06 18:21:59
1.在扩展应用中安装ES7 React/Redux/GraphQL/React-Native snippet 2.选择文件-->首选项-->设置(快捷键Ctr+,)在搜索框中输入language,选择Emmet,并在Emmet:include language下点击setting.json中编辑,添加 { "window.zoomLevel": 1, "explorer.confirmDelete": true, "emmet.includeLanguages":{ "javascript":"javascriptreact" }, "typescript.disableAutomaticTypeAcquisition": true } 4.rcc+tab键(官网地址 https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets ) 4. 3.文件-->首选项-->联机服务设置,然后搜索TypeScript: Disable Automatic Type Acquisition,将此项勾选上,这样就会有提示了 来源: CSDN 作者: xinxin_csdn 链接: https://blog.csdn.net/xinxin_csdn/article/details