1.必须要有Js基础
不管你是从前端转到rn,或者是移动端转到rn,或者一开始就接触rn,都必须要js基础,我总共面试了两家,两家都有笔试题,而且全部都是关于js的,关于rn的很少,现在说两个问的最多的:
1.es6中增加了那些新的功能?
①增加了箭头函数
②增加了对类的支持,引入了class的关键字
③增强对象自变量
④增加了Promises
... 还有好多(具体可以看这篇文章,人家总结的很好 http://www.cnblogs.com/Wayou/p/es6_new_features.html)
2.你对promises了解多少?
promise是es6新增的特性,我用的很少,甚至我也不认识他,所以面试的时候我只能说我不知道,刚查了查文章:
Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的[deferred](http://api.jquery.com/category/deferred-object/) 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式。
用法: (http://www.jianshu.com/p/063f7e490e9a)
new Promise(function (resolve, reject) {
throw new Error('悲剧了,又出 bug 了');
}).catch(function(err){
console.log(err);
});
3.用过fetch么?那你知道fetch和ajax的区别么?
简单来说 Ajax的本质是使用XMLHttpRequest对象来请求数据;而fetch是用于发送请求的API。
具体的看这篇文章(http://www.cnblogs.com/September-9/p/7099975.html),因为ajax我没用过,对他不是很了解。
4.用js写一个冒泡排序,用js的reduce写一个简单的例子,用js的某某某功能做一件事情。。等等等等,这就要考js的基本知识了,这里我就不多举例了,网上有很多关于js的文章,可以去看一下.
5.他们写一段js的代码,让你用es5或者es6的方式重写这一段代码,来实现里面的某些功能,这些需要大家对es5或者es6有一定的了解和掌握
6.其他的就是一些小问题了,反正离不开js和es6语法,如果Js很好,对es6很理解,那这些就都不是问题了。
2.必须会redux
现在rn的框架用的最多的就是redux,当然还有Mobx,所以对于这两个你一定要会用,不光会用,你还要会说,知道他的原理。
1.redux的用法
2.页面上的代码怎么和Action进行联系
3.redux的中间件用过么?了解他的原理么?知道他的作用是什么么?
4.用redux的好处是什么?
5.如果让你搭建redux,你如何搭建?
3.对rn的基础知识必须了解清楚
你去应聘的岗位是react-native,所以相应的他们也会问一些关于rn方面的东西。
1.props和state的区别?
2.知道react-native的生命周期么?
3.react-native父组件和子组件直接如何交互?
4.react-native父组件和兄弟组件之间如何交互?
5.一般要进行网络请求的时候,在哪里发送网络请求比较好?
6.react-native的组件写在哪里?
7如果给setState传入第二个参数,那这第二个参数有什么作用?是干什么的?
8.用过动画么?对动画了解多少?
9.rn怎么跟原生进行交互?
10.其他的会根据具体情况具体提问。。
4.项目
不管你简历上写的项目有多少是你自己做的,你都要了解清楚,都有那些重要的功能,你在项目中负责那一块,你做这个功能需要多少天,能不能更好的完成等。
5.积极好学的心态
你要让面试官知道你是一个积极好学的人,一个学习能力强的人比一个项目做了无数个的更能吸引面试官的注意,因为项目做得多并不能代表你的水平,可能你做的这些项目大体都一致,都是粘贴复制的,而一个学习能力强并且好学的人就不一定了,学习一个新知识总会比你写一堆一模一样的代码重要的多,所以你要表现出自己认真好学的这个技能。
以上就是我的面试总结了,希望这些也对你们有帮助吧。