Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
React NativeÍ´µã½âÎöÖ®ÐÔÄܵ÷ÓÅ
 
×÷ÕߣºÎºÏþ¾ü À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2016-9-21
  2071  次浏览      27
 

×Ô´ÓReact Native³öÊÀ£¬ËäÈ»¹Ù·½Ò»Ö±¾¡¿ÉÄܵÄÓÅ»¯ÆäÐÔÄÜ£¬ÎªÁËÄÜÈÃÆäæÇÃÀÔ­ÉúAppµÄËÙ¶È£¬µ«ÊÇÏÖʵ¸Ð¾õÓе㲻¾¡ÈËÒâ¡£½ÓÏÂÀ´½éÉÜÏÂʵ¼ùÖÐÓöµ½µÄһЩÐÔÄÜÎÊÌâÒÔ¼°ÓÅ»¯·½°¸¡£ÒÔ϶ÔÐÔÄܲÎÊýµÄÒÀ¾ÝÊÇÀ´×ÔÓÚReact Native×Ô´øµÄFPS Monitor.

1. NavigatorÒ³ÃæÇл»¶¯»­ÓÅ»¯

³¡¾°: ÔÚNavigator»¹Ã»³öÀ´Ê±£¬µ¼º½Æ÷ÊÇÓÉNavigatorIOSÀ´ÊµÏֵ쬵±Ê±¾õµÃÒ³ÃæÇл»¶¯»­ºÜÁ÷³©£¬µ«ÊÇÒ»µ©ÓÃNavigatorºó£¬·¢ÏÖ¶¨ÒåµÄÇл»¶¯»­»áʹJSÏ̳߳öÏÖÑÏÖØµÄµôÖ¡(¿¨¶ÙÏÖÏó)¡£

Ô­Òò: NavigatorIOSµÄÇл»¶¯»­ÊÇÅÜÔÚUIÖ÷Ïß³ÌÉÏ£¬¶ø²»ÊÇJSÏß³ÌÉϵģ¬ËùÒÔ²»ÊÜJSÏß³ÌÉϵĵôÖ¡Ó°Ïì¡£µ±È»¹Ù·½»¹ÊÇÍÆ¼öʹÓÃNavigator,ÆäÔ­ÒòÈçÏ£º

NavigatorÀ©Õ¹ÐÔµÄAPIÉè¼ÆÊ¹µÃËüÍêÈ«¿ÉÒÔͨ¹ýjs¶¨ÖÆ£¬¶øNavigatorIOSÔòÎÞjs²ãÃæµÄ¶¨ÖÆ£»

NavigatorʹÓÃJavaScript±àд£¬iOSºÍAndroid¶¼¿ÉÒÔʹÓ㬶øNavigatorIOSÖ»ÄÜÔÚIOSÉÏ£»

NavigatorÓÅ»¯ºóµÄ¶¯»­Ð§¹û»¹Ëã²»´í£¬¶øÇÒ¹Ù·½»¹ÔÚ²»¶Ï¸Ä½øÖУ¬µ±È»Õâ¸ö¶¯»­±È²»ÉÏNavigatorIOSÄÇô˳»¬¡£µ«NavigatorIOS²¢²»ÔÚFaceBookµÄÓ¦ÓÃÖÐʹÓã¬Ò²²»ÊÇÆäÖ÷µ¼¿ª·¢£¬¶øÊÇ¿ªÔ´ÉçÇøÖ÷µ¼¿ª·¢¡£ËùÒÔ¿ÉÄܿӶàÓÖûÈ˸ø³öÌî¿ÓµÄ½â¾ö·½·¨¡£

ËùÒÔÎÒÃÇÑ¡Ôñµ¼º½µÄʱºò¾¡Á¿Ñ¡ÔñNavigator°É¡£

ÓÅ»¯Çл»¶¯»­¿¨¶ÙµÄÎÊÌâ

1.ʹÓÃAPI InteractionManager£¬ËüµÄ×÷ÓþÍÊÇ¿ÉÒÔʹ±¾À´JSµÄһЩ²Ù×÷ÔÚ¶¯»­Íê³ÉÖ®ºóÖ´ÐУ¬ÕâÑù¾Í¿ÉÈ·±£¶¯»­µÄÁ÷³ÌÐÔ¡£µ±È»ÕâÊÇÔÚÑÓ³ÙÖ´ÐÐΪ´ú¼ÛÉÏÀ´»ñµÃÖ¡ÊýµÄÌá¸ß¡£

2.ʹÓÃLayoutAnimation API(Ò»´ÎÐÔ¶¯»­)£¬ÔÚ¶Ô¶¯»­ÖÐ;ÎÞÈ¡ÏûÒªÇó»òÕ߯äËûÖÐ;»Øµ÷ÒªÇóµÄ(±ÈÈç¾Ö²¿×é¼þÌØ¶¨ÏÔʾÒþ²Ø¶¯»­µÈ)£¬Ôò¿ÉÒÔʹÓÃÕâ¸ö·½°¸¡£ÎÒÃÇ¿ÉÒÔÔÚµ÷ÓÃsetState֮ǰ£¬µ÷ÓÃLayoutAnimation·½·¨¡£´úÂëÈçÏ£º

2. Êý¾ÝÀàÐ͵ÄÓÅ»¯

³¡¾°£º»ù±¾ÉÏÿ¸öÒ³Ãæ¶¼ÐèÒª¼ÓÔØºÍäÖȾÊý¾Ý£¬Èç¹ûÒ³ÃæÁбíÊý¾Ý½á¹¹¸´ÔÓ,ÓÐʱˢÐÂÊý¾ÝʱstateÖеÄδ±ØÓÐÐ޸쬵«ÊÇÓöµ½ÕâÑùµÄÓï¾äthis.setState({data:samedata}) ,½çÃæÈ´±»ÖØÐÂrender.

Ô­Òò£ºÕâÊÇreact-nativeµÄÉúÃüÖÜÆÚ£¬µ±Äãµ÷ÓÃsetStateʱ£¬×ÜÊǻᴥ·¢renderµÄ·½·¨¡£

ÓÅ»¯Êý¾ÝÎÊÌ⣺¿ÉÒÔʹÓÃshouldComponentUpdateÉúÃüÖÜÆÚ·½·¨£¬´Ë·½·¨×÷ÓÃÊÇÔÚprops»òÕßstate¸Ä±äÇÒ½ÓÊÕµ½ÐµÄֵʱ£¬ÔòÔÚÒªrender·½·¨Ö®Ç°µ÷Óᣴ˷½·¨ÔÚ³õʼ»¯äÖȾµÄʱºò²»»áµ÷Óã¬ÔÚʹÓÃforceUpdate·½·¨µÄʱºòÒ²²»»á¡£ËùÒÔÔÚÕâ¸ö·½·¨ÖÐÎÒÃÇ¿ÉÒÔÔö¼ÓЩÅжϹæÔòÀ´±ÜÃâµ±state»òÕßpropsûÓиıäʱËùÔì³ÉµÄÖØÐÂrender.

µ«½ö½ö×öÕâ²ãÅжÏÊDz»¹»µÄ£¬Èç¹ûÊÇÒ»¸öÁбíµÄ¶ÔÏó£¬ÀýÈçÏÂÃæµÄÀý×Ó£º

ÕâÀTʹʹÓÃÁËshouldComponentUpdateÖеÄÅжϣ¬µ«È´Ò»Ö±·µ»Øtrue£¬µ¼Ö»¹»áÖ´ÐÐrender¡£ËùÒÔ±ØÐë¶Ô¶ÔÏóËùÓеļüÖµ½øÐнøÐбȽϲÅÄÜÈ·ÈÏÊÇ·ñÏàµÈ¡£ÕâÀïÍÆ¼öʹÓÃfacebook×Ô¼ÒµÄimmutablejs¡£Ò»¸ö²»¿É±äÊý¾ÝÀàÐ͵Ŀ⡣ʹÓúó¿ÉÒÔÖ±½ÓʹÓÃһϵÄд·¨´ïµ½ÎÒÃÇ֮ǰµÄÄ¿µÄ(¼´Ê¹ÊǶÔÏ󶼿ÉÒÔÍêÃÀµÄ×ö±È½Ï)¡£Ð޸ĺó´úÂëÈçÏ£º

immutablejsÆäËûµÄ¾ßÌåÓ÷¨Çë¼û:http://facebook.github.io/immutable-js/

3. Êý¾Ý¼ÓÔØµÄÓÅ»¯

³¡¾°£ºÔÚÊׯÁÒ³Ãæ¼ÓÔØÊ±£¬¼ÓÔØÇ°6·ÖÖÓµÄÊý¾Ý·Ö6Ò³ÏÔʾ£¬²¢Ðè±£³Öµ±Ç°Ñ¡ÔñÒ³µÄʱ¼äµÄǰ6·ÖÖÓ£¬Èç¹û°´Õմ˳¡¾°¿ª·¢ËùÓöµ½ÎÊÌâÊÇ£ºÊ×Ò³¼ÓÔØÊ±¼äÌ«³¤£¬¼ÓÔØÐÂÊý¾ÝÊ±Ò³ÃæÏÔʾ¼ÓÔØÓû§ÌåÑ鲻˳³©¡£

Ô­Òò£ºÊ×Ò³ÇëÇóÊý¾ÝÁ¿¹ý´ó,µ¼ÖÂÊׯÁÒ³Ãæ¼ÓÔØºÜÂý;ºǫ́Êý¾Ý¸üÐÂʱµ¼ÖÂÓû§ÌåÑ鲻˳³©¡£

ÓÅ»¯ÎÊÌ⣺¼õÉÙÊׯÁ¼ÓÔØµÄÊý¾Ý£¬ÊµÏÖÊý¾ÝÀÁ¼ÓÔØ£¬ÆäÏȼÓÔØ3Ò³µÄÊý¾ÝÁ¿£¬È»ºóÔÚ»¬¶¯µÄʱºòºǫ́ȥȡºóÃæµÄÊý¾Ý(ÀýÈç°ó¶¨µ½Slider×é¼þµÄonMomentumScrollEndʼþÖÐ,ÿ´ÎÈ¡3ÌõÊý¾Ý),×îºóÿ´Î±£³Ö6·ÖÖÓµÄÊý¾ÝÔÚ×é¼þÖУ¬ÆäËûÊý¾ÝÔò¿É·Åµ½localstorageÖÐ×÷Ϊ»º´æ¡£ÕâÑù¾Í¿ÉÒÔ¼õÉÙÊׯÁ¼ÓÔØÊ¼þºÍÌá¸ßÓû§ÌåÑé¡£¼ÓÔØÊý¾ÝµÄ¹ö¶¯ÁбíʾÀý´úÂëÈçÏ£º

³õʼ»¯(¶¨ÒåÊý¾Ýdata)£º

¹ö¶¯ÁбíµÄʼþ£º·ÖΪ×ó»¬Ã¿´Îµ½3µÄ±¶ÊýÒ³ÃæÈ¡µ±Ç°È¡¹ýµÄÊý¾ÝµÄǰ3·ÖÖÓµÄÀúÊ·Êý¾Ý£»ÓÒ»¬Ôòȡ֮ºóµÄʱ¼ä¡£

4. ×é¼þÏìÓ¦ËٶȵÄÓÅ»¯

³¡¾°£ºÒ»¸öÒ³Ãæ°üº¬¶à¸öÀà±ðµÄÁÐ±í£¬ÓÉÓÚÁÐ±í¶¼±È½Ï³¤£¬ËùÒÔÐèÒªÔö¼ÓÕÛµþ¹¦Äܲ¢Ôö¼ÓÕÛµþ¶¯»­£¬ÕÛµþ°´Å¥Ê¹ÓõÄÊÇTouchableHighlight×é¼þ¡£ÎÊÌâÊǵ±ÎÒµã»÷ÕÛµþ»òÕßÕ¹¿ª°´Å¥Ê±³öÏÖÑÓ³ÙÏìÓ¦ºÍ¶¯»­µôÖ¡µÄÎÊÌâ¡£

Ô­Òò£ºÔÚTouchableHighlight×é¼þµÄonPress·½·¨ÖÐÖ´ÐÐÁËsetStateµÄ²Ù×÷£¬ÓÉÓÚÁбíµÄ¶ÔÏóÏà¶ÔÀ´Ëµ±È½Ï¸´ÔÓÐèÒª´óÁ¿¼ÆËãµÄ¹¤×÷£¬ËùÒÔµ¼ÖÂÁËÑÓ³ÙÏìÓ¦ºÍJSÏ̵߳ĵôÖ¡¡£

ÓÅ»¯ÎÊÌ⣺ʹÓÃrequestAnimationFrame(fn)ÔÚÏÂÒ»Ö¡¾ÍÁ¢¼´Ö´Ðлص÷£¬ÕâÑù¾Í¿ÉÒÔÒì²½À´Ìá¸ß×é¼þµÄÏìÓ¦ËÙ¶È¡£¶øÕÛµþ¶¯»­Ôò¿ÉÒÔʹÓÃLayoutAnimationÒ»´ÎÐÔ¶¯»­À´Íê³É£¬±£Ö¤ÆäÁ÷³©ÐÔ¡£¶ø¶ÔÓÚijЩ״̬¸üУ¬setNativeProps·½·¨¿ÉÒÔÈÃÎÒÃÇÖ±½ÓÐÞ¸ÄÔ­ÉúÊÓͼ×é¼þµÄÊôÐÔ£¬¶ø²»ÓÃͨ¹ýsetStateÀ´ÖØÐÂäÖȾ½á¹¹£¬ÕâÑùÄÜʹÕû¸ö×é¼þÏìÓ¦Ëٶȱä¿ì¡£

»¹ÓÐÒªÌáÐѵÄÊǾ¡Á¿ÓÅ»¯×é¼þµÄView½á¹¹£¬µ±ViewµÄ²ã¼¶ºÜÉîʱäÖȾµÄËÙ¶ÈÒ²»á±äÂý

5. ×ÊÔ´ÓÅ»¯

³¡¾°£ºÕâÀï˵µÄ×ÊÔ´°üÀ¨React Native´ò³öÀ´µÄBundle£¬Í¼Æ¬µÈ¾²Ì¬×ÊÔ´¡£RNµÄÒ»¹ÉÄÔ¶ùµÄ´ò°ü·½Ê½£¬ÎÞÒÉÒ»ÏÂ×ÓÔö´óÁËBundle°ü´óС¡£»¹ÓÐÒ»¸öÒ³Ãæ¶à¶àÉÙÉÙ»á°üº¬Ò»Ð©Í¼Æ¬£¬ÌرðÊÇÔÚһЩÉÌÒµAPPÖУ¬Í¼Æ¬ÊǶÔÄÚÈÝÒ»ÖÖ²¹³ä£¬ÄÜÈÃÌá¸ßÓû§ÌåÑ顣ΪÁËÄܸü¿ìµÄ¼ÓÔØÍ¼Æ¬£¬¿ÉÒÔ°ÑͼƬ´òÈë°üÖУ¬µ±È»Õâ¸ö´ú¼ÛÊǾ޴óµÄ¡£¶ÔAPPÀ´Ëµ£¬¿ØÖưüµÄSize²»¹Ü´ÓÉÌÒµ·½Ã滹ÊÇ¿ª·¢ÐÔÄÜ·½Ãæ¶¼ÊÇÒ»¸öºÜÖØÒªµÄ²ÎÊý¡£

ÓÅ»¯ÎÊÌ⣺

¶ÔÓÚBundle¹ý´ó£¬ÎÒÃÇ¿ÉÒÔͨ¹ýһЩ˼·À´ÓÅ»¯Ëü£¬Ê×ÏÈÊÇ¶ÔÆä³¢ÊÔ½øÐвð°ü£¬È»ºó¶Ô²ð°ü½øÐÐÔ¼Êø£¬Ê¹¹«¹²»ù´¡ÄDz¿·Ö²ð³ÉÒ»Àà°ü£¬Ê¹Æä¿ÉÒÔ°´Ðè¼ÓÔØ±¾µØÎļþ£¬¶øÏñÒµÎñÂß¼­µÈÔò²ð³ÉÁíÒ»Àà°ü£¬Ê¹Æä¿ÉÒÔ°´Ðè¼ÓÔØÏßÉÏÎļþ¡£

ͼƬÎÒÃÇ¿ÉÒÔ¶ÔÆäת³Éwebp¸ñʽ¡£webp´ó¼ÒÓ¦¸Ã¶¼ºÜÊìϤÁË,Ëü¼ÈÖ§³ÖÓÐËðѹËõÓÖÖ§³ÖÎÞËðѹËõµÄͼƬÎļþ¸ñʽ¡£¸ù¾Ý¹Ù·½½éÉÜÆäÎÞËðѹËõºóµÄWebP±ÈPNGÎļþÉÙÁË45£¥µÄÎļþ´óС£¬¼´Ê¹PNGÎļþ¾­¹ýѹËõ¹¤¾ßѹËõÖ®ºó£¬WebP»¹¿ÉÒÔ¼õÉÙ28£¥µÄÎļþ´óС£¬Õâ¿ÉÒÔ´ó´óÌá¸ßÒÆ¶¯¶ËµÄͼƬ¼ÓÔØËÙ¶È¡£¾Ý¹ÙÍø½éÉÜÔÚIOSƽ̨ÖÐ,ÿ´Îµ÷ÕûImage×é¼þµÄ´óС£¬¶¼ÐèÒªÖØÐ²üôºÍËõ·ÅԭʼͼƬ£¬ÖØÐÂäÖȾ½çÃæ¡£Õâ¸ö²Ù×÷¿ªÏú»á·Ç³£´ó£¬ÓÈÆäÊÇ´óµÄͼƬ¡£±ÈÆðÖ±½ÓÐ޸ijߴ磬¸üºÃµÄ·½°¸ÊÇʹÓÃtransform:[{scale}]µÄÑùʽÊôÐÔÀ´¸Ä±ä³ß´ç¡£±ÈÈçµ±Äãµã»÷Ò»¸öͼƬ£¬Òª½«Ëü·Å´óµ½È«ÆÁµÄʱºò£¬¾Í¿ÉÒÔʹÓÃÕâ¸öÊôÐÔ¡£

6. Ò³Ãæ¼ÓÔØÓëÏÔʾÓÅ»¯

³¡¾°£ºÄ³Ð©Ò³ÃæÐèÒª·ÃÎÊÒ»¸ö»ò¶à¸öÒµÎñÊý¾Ý·þÎñ£¬ËäȻȡÊý¾ÝÊÇÒì²½£¬µ«ÊÇÒ³Ãæ×ÜÊÇ»áÓÐÒ»¶Î½Ï³¤µÄloadingµÄʱ¼ä¡£

ÓÅ»¯ÎÊÌ⣺¶ÔÓÚÊׯÁËùÐèµÄÊý¾Ý·þÎñµÄ·ÃÎÊ£¬Ê¹ÆäÔÚÒ³Ãæ¼ÓÔØ½×¶Î¾¡ÔçµÄ·¢ÆðÊý¾ÝÇëÇó£¬ÕâÑùÓÐÖúÓÚ¼õÉٵȴýÊý¾ÝµÄʱ¼ä¡£¶ø¶Ô³¤Ê±¼äµÄLoading¿ÉÄܻήµÍÓû§ÌåÑéµÄÎÊÌ⣬ÎÒÃÇ¿ÉÒÔʹÓÃFakeÒ³À´Ìá¸ßÓû§ÌåÑé¡£ÏÈÏÔʾһ¸öFakeÒ³£¬µÈÊý¾ÝÇëÇóºó²¢Ö´ÐÐÁËÏàÓ¦µÄÒµÎñÂß¼­ºó£¬ÔÙÌæ»»³ÉÕæÕýµÄÒ³Ãæ¡£

ÒÔÉÏÊÇÎÒÃÇÔÚʵ¼ùÖеÄһЩÓÅ»¯Ðĵã¬ÓÅ»¯Ö®Â·ÂþÂþ£¬ÎὫÉÏ϶øÇóË÷¡£ÌرðÊÇÔÚReact Native»¹Ôڳɳ¤ÆÚÕâ¸ö½×¶Î£¬ÓÅ»¯±äµÃÓÈÎªÖØÒª¡£ÆÚÍûReact NativeδÀ´ÔÚÐÔÄÜÉÏÓиüºÃµÄÍ»ÆÆ¡£

   
2071 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ


Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ