2019-01-11 18:04:02 wyw223 阅读数 785
  • 完全征服React Native

    React Native是Facebook于2015年推出的跨平台开发工具,可用于开发Android和iOS App,并且同时具有混合开发的优点(热更新,跨平台)以及本地App的性能。 本课程采用新的ES6开发,主要内容包括ReactNative的基础知识,ReactNative的布局,组件,API,封装本地API和组件,发布ReactNative App,本地与ReactNative深度结合

    58314 人正在学习 去看看 李宁

在app上做调查问卷,让用户答问题的时候,如果该题为必答题,用户没有答题的话则弹出提示框,让用户答完题后再跳转到下一题
使用 react-native-easy-toast 组件
https://github.com/crazycodeboy/react-native-easy-toast
安装

yarn add react-native-easy-toast

使用

  this.state = {
            position: 'bottom',
            style:{},
    }
 <Toast ref="toast" style={{backgroundColor:'#cccccc'}} position={this.state.position}/>
 let text = '提示框内容'
 this.refs.toast.show(text, DURATION.LENGTH_LONG)
2018-05-29 11:25:04 danding_ge 阅读数 1846
  • 完全征服React Native

    React Native是Facebook于2015年推出的跨平台开发工具,可用于开发Android和iOS App,并且同时具有混合开发的优点(热更新,跨平台)以及本地App的性能。 本课程采用新的ES6开发,主要内容包括ReactNative的基础知识,ReactNative的布局,组件,API,封装本地API和组件,发布ReactNative App,本地与ReactNative深度结合

    58314 人正在学习 去看看 李宁

在移动端,Toast方式提示消息更为普遍。


1.安装插件react-native-easy-toast

github地址:https://github.com/crazycodeboy/react-native-easy-toast

中文文档:https://github.com/crazycodeboy/react-native-easy-toast/blob/master/README.zh.md

$ npm install react-native-easy-toast --save
2.引入react-native-easy-toast
import Toast from 'react-native-easy-toast';
3.在最外层View底部渲染Toast
            <View style={[{flex: 1}]}>
                {/*<Router sceneStyle={[styles.router]}>*/}
                    {/*......*/}
                {/*</Router>*/}
                {/*<PlayButton />*/}
                <Toast ref="toast" opacity={0.8}/>
                {/*<Loading ref={r=>{this.Loading = r}} hide = {true} />*/}
            </View>
4.定义全局toast方法
let self; //将App组件中的this赋给全局的self

global.toast = false; //所有子页面均可直接调用global.toast("")来吐司提示消息
5.给全局方法赋值
    componentDidMount() {
        self = this;
        global.toast = function(message) {
            self.refs.toast.show(message);
        };
    }
6.调用
global.toast('这是消息提示');


2019-08-29 16:25:56 fepengwang 阅读数 24
  • 完全征服React Native

    React Native是Facebook于2015年推出的跨平台开发工具,可用于开发Android和iOS App,并且同时具有混合开发的优点(热更新,跨平台)以及本地App的性能。 本课程采用新的ES6开发,主要内容包括ReactNative的基础知识,ReactNative的布局,组件,API,封装本地API和组件,发布ReactNative App,本地与ReactNative深度结合

    58314 人正在学习 去看看 李宁
组件库:

react-native-swiper :引导页效果 react-native-storage :数据本地存储,更强大
 AsyncStorage  :react native自带存储,满足基本功能

  eact-native-easy-toast :进行简易弹窗提示

  

react-navigation :跳转路由
react-native-webview-bridge :与Webview交互

 

2017-10-11 12:58:04 qizhenshuai 阅读数 13418
  • 完全征服React Native

    React Native是Facebook于2015年推出的跨平台开发工具,可用于开发Android和iOS App,并且同时具有混合开发的优点(热更新,跨平台)以及本地App的性能。 本课程采用新的ES6开发,主要内容包括ReactNative的基础知识,ReactNative的布局,组件,API,封装本地API和组件,发布ReactNative App,本地与ReactNative深度结合

    58314 人正在学习 去看看 李宁

伴随着MVVM框架和移动端跨平台开发越来越火,作为移动端的你准备好了吗?

基础部分(答案自行百度,简答只做提示)

1.React Native相对于原生的ios和Android有哪些优势?

简答:react native一套代码可以开发出跨平台app,
减少了人力、节省了时间、避免了 iOS 与 Android 版本发布的时间差,开发新功能可以更迅速。等等

2.React Native的优点和缺点在哪里?

简答:缺点:内存、转化为原生的

3.父传子,子传父数据传递方式?

简答:props state refs 方面回答

4.如何实现底部TabBar的高度不一样呢?(类似新浪微博底部加号)

简答:主要考察flex布局绝对定位问题

5.你的项目有没有使用redux或者是mobx来管理数据呢?
6.请您简单介绍一下redux?dva? mobx?

简答:redux ==> action/reducer/store
           mobx ==>数据双向绑定

7.当你调用setState的时候,发生了什么事?

当调用 setState 时,React会做的第一件事情是将传递给 setState 的对象合并到组件的当前状态。
这将启动一个称为和解(reconciliation)的过程。
和解(reconciliation)的最终目标是以最有效的方式,根据这个新的状态来更新UI。
为此,React将构建一个新的 React 元素树(您可以将其视为 UI 的对象表示)。
一旦有了这个树,为了弄清 UI 如何响应新的状态而改变,React 会将这个新树与上一个元素树相比较( diff )。
通过这样做, React 将会知道发生的确切变化,并且通过了解发生什么变化,只需在绝对必要的情况下进行更新即可最小化 UI 的占用空间。
  1. React中Element 和 Component 有何区别?
简单地说,一个 React element 描述了你想在屏幕上看到什么。
换个说法就是,一个 React element 是一些 UI 的对象表示。
一个 React Component 是一个函数或一个类,
它可以接受输入并返回一个 React element 
(通常是通过 JSX ,它被转化成一个 createElement 调用)。

9.shouldComponentUpdate 应该做什么

其实这个问题也是跟reconciliation有关系。
“和解( reconciliation )的最终目标是以最有效的方式,根据新的状态更新用户界面”。
如果我们知道我们的用户界面(UI)的某一部分不会改变,
那么没有理由让 React 很麻烦地试图去弄清楚它是否应该渲染。
通过从 shouldComponentUpdate 返回 false,
React 将假定当前组件及其所有子组件将保持与当前组件相同
  1. 描述事件在React中的处理方式
为了解决跨浏览器兼容性问题,
您的 React 中的事件处理程序将传递 SyntheticEvent 的实例,
它是 React 的浏览器本机事件的跨浏览器包装器。

这些 SyntheticEvent 与您习惯的原生事件具有相同的接口,除了它们在所有浏览器中都兼容。
有趣的是,React 实际上并没有将事件附加到子节点本身。
React 将使用单个事件监听器监听顶层的所有事件。
这对于性能是有好处的,这也意味着在更新DOM时,React 不需要担心跟踪事件监听器

11.reactJS的props.children.map函数来遍历会收到异常提示,为什么?应该如何遍历?

this.props.children 的值有三种可能:
    1.当前组件没有子节点,它就是 undefined;
    2.有一个子节点,数据类型是 object ;
    3.有多个子节点,数据类型就是 array 。
系统提供React.Children.map()方法安全的遍历子节点对象

12.面试中的一道题:

  constructor() {
    super();
    this.state = {
      val: 0
    };
  }

  componentDidMount() {
    this.setState({val: this.state.val + 1});
    console.log(this.state.val);    // 第 1 次 log

    this.setState({val: this.state.val + 1});
    console.log(this.state.val);    // 第 2 次 log

    setTimeout(() => {
      this.setState({val: this.state.val + 1});
      console.log(this.state.val);  // 第 3 次 log

      this.setState({val: this.state.val + 1});
      console.log(this.state.val);  // 第 4 次 log
    }, 0);
  }

  render() {
    return null;
  }
};
问上述代码中 4 次 console.log 打印出来的 val 分别是多少?
答案:4log 的值分别是:0023。
 (如果想知道到底为什么,可以看另一篇文章,《React中this.setState到底做了什么?》)

13.XSS与CSRF介绍

XSS是一种跨站脚本攻击,是属于代码注入的一种,攻击者通过将代码注入网页中,其他用户看到会受到影响(代码内容有请求外部服务器);

CSRF是一种跨站请求伪造,冒充用户发起请求,完成一些违背用户请求的行为(删帖,改密码,发邮件,发帖等)

14.在使用redux过程中,如何防止定义的action-type的常量重复?

ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。
Symbol函数前不能使用new命令,否则会报错。这是因为生成的Symbol是一个原始类型的值,不是对象
Symbol函数可以接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。

待续。。。

Mac下安装React Native

阅读数 7291

没有更多推荐了,返回首页