亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

深入淺析react native es6語法

2019-11-20 11:03:05
字體:
來源:轉載
供稿:網友

react native是直接使用es6來編寫代碼,許多新語法能提高我們的工作效率

解構賦值

var { StyleSheet,Text,View} = React;

這句代碼是ES6 中新增的解構(Destructuring)賦值語句。準許你獲取對象的多個屬性并且使用一條語句將它們賦給多個變量。

上面的代碼等價于:

var StyleSheet = React.StyleSheet;var Text = React.Text;var View = React.View

再看幾個例子,以前,為變量賦值,只能直接指定值:

var a = 1;var b = 2;var c = 3;

而ES6 允許這樣寫:

var [a, b, c] = [1, 2, 3];

更詳細的內容可參看:變量的解構賦值

箭頭函數

React Native 里面經常會出現類似的代碼:

ES6中新增的箭頭操作符=> 簡化了函數的書寫。操作符左邊為輸入的參數,而右邊則是進行的操作以及返回的值Inputs=>outputs

舉幾個栗子感受下:

var array = [1, 2, 3];//傳統寫法array.forEach(function(v, i, a) {  console.log(v);});//ES6array.forEach(v => console.log(v));var sum = (num1, num2) => { return num1 + num2; }//等同于:var sum = function(num1, num2) {  return num1 + num2; };

更多詳細內容請自行Google,或查看:https://www.imququ.com/post/arrow-function-in-es6.html

延展操作符(Spread operator)

這個 … 操作符(也被叫做延展操作符 - spread operator)已經被 ES6 數組 支持。它允許傳遞數組或者類數組直接做為函數的參數而不用通過apply。

var people=['Wayou','John','Sherlock'];//sayHello函數本來接收三個單獨的參數人妖,人二和人三function sayHello(people1,people2,people3){  console.log(`Hello ${people1},${people2},${people3}`);}//但是我們將一個數組以拓展參數的形式傳遞,它能很好地映射到每個單獨的參數sayHello(...people);//輸出:Hello Wayou,John,Sherlock //而在以前,如果需要傳遞數組當參數,我們需要使用函數的apply方法sayHello.apply(null,people);//輸出:Hello Wayou,John,Sherlock

而在React中,延展操作符一般用于屬性的批量賦值上。在JSX中,可以使用…運算符,表示將一個對象的鍵值對與ReactElement的props屬性合并。

var props = {}; props.foo = x; props.bar = y; var component = <Component {...props} />;//等價于var props = {}; props.foo = x; props.bar = y; var component = <Component foo={x} bar={y} />;它也可以和普通的XML屬性混合使用,需要同名屬性,后者將覆蓋前者:JavaScriptvar props = { foo: 'default' };var component = <Component {...props} foo={'override'} />;console.log(component.props.foo); // 'override'

更多詳細信息:https://facebook.github.io/react/docs/jsx-spread.html

class

ES6中添加了對類的支持,引入了class關鍵字(其實class在JavaScript中一直是保留字,目的就是考慮到可能在以后的新版本中會用到,現在終于派上用場了)。JS本身就是面向對象的,ES6中提供的類實際上只是JS原型模式的包裝。現在提供原生的class支持后,對象的創建,繼承更加直觀了,并且父類方法的調用,實例化,靜態方法和構造函數等概念都更加形象化。

class PropertyView extends Component {  render() {    return (      <View></View>    )  }}//等價于var PropertyView = React.createClass({  render() {    return (      <View></View>    )  }})

 方法定義(method definition)

ECMAScript 6中,引入了一種名叫方法定義(method definition)的新語法糖,相對于以前的完整寫法,這種簡寫形式可以讓你少寫一個function鍵字.

React.createClass({  render() {    return (      <View></View>    )  }})//等價于React.createClass({  render : function() {    return (      <View></View>    )  }})

最后,推薦一個ES6的PPT,寫得不錯:http://khan4019.github.io/ES6/

react native是直接使用es6來編寫代碼,許多新語法能提高我們的工作效率

解構賦值

var {	 StyleSheet,	 Text,	 View	} = React;

這句代碼是ES6 中新增的解構(Destructuring)賦值語句。準許你獲取對象的多個屬性并且使用一條語句將它們賦給多個變量。

上面的代碼等價于:

	var StyleSheet = React.StyleSheet;	var Text = React.Text;	var View = React.View

再看幾個例子,以前,為變量賦值,只能直接指定值:

 var a = ; var b = ; var c = ;

而ES 允許這樣寫:

var [a, b, c] = [, , ];

更詳細的內容可參看:變量的解構賦值

箭頭函數

React Native 里面經常會出現類似的代碼:
ES6中新增的箭頭操作符=> 簡化了函數的書寫。操作符左邊為輸入的參數,而右邊則是進行的操作以及返回的值Inputs=>outputs

舉幾個栗子感受下:

	var array = [, , ];//傳統寫法	array.forEach(function(v, i, a) {	  console.log(v);	});//ES	array.forEach(v => console.log(v));	var sum = (num, num) => { return num + num; }//等同于:	var sum = function(num, num) {	  return num + num;	 };

更多詳細內容請自行Google,或查看:https://www.imququ.com/post/arrow-function-in-es6.html
延展操作符(Spread operator)
這個 … 操作符(也被叫做延展操作符 - spread operator)已經被 ES6 數組 支持。它允許傳遞數組或者類數組直接做為函數的參數而不用通過apply。

 var people=['Wayou','John','Sherlock'];//sayHello函數本來接收三個單獨的參數人妖,人二和人三 function sayHello(people,people,people){   console.log(Hello ${people},${people},${people}); }//但是我們將一個數組以拓展參數的形式傳遞,它能很好地映射到每個單獨的參數 sayHello(...people);//輸出:Hello Wayou,John,Sherlock//而在以前,如果需要傳遞數組當參數,我們需要使用函數的apply方法 sayHello.apply(null,people);//輸出:Hello Wayou,John,Sherlock而在React中,延展操作符一般用于屬性的批量賦值上。在JSX中,可以使用…運算符,表示將一個對象的鍵值對與ReactElement的props屬性合并。 var props = {};  props.foo = x;  props.bar = y;  var component = <Component {...props} />;//等價于 var props = {};  props.foo = x;  props.bar = y;  var component = <Component foo={x} bar={y} />;

它也可以和普通的XML屬性混合使用,需要同名屬性,后者將覆蓋前者:

 var props = { foo: 'default' }; var component = <Component {...props} foo={'override'} />; console.log(component.props.foo);// 'override'

更多詳細信息:https://facebook.github.io/react/docs/jsx-spread.html

class

ES6中添加了對類的支持,引入了class關鍵字(其實class在JavaScript中一直是保留字,目的就是考慮到可能在以后的新版本中會用到,現在終于派上用場了)。JS本身就是面向對象的,ES6中提供的類實際上只是JS原型模式的包裝。現在提供原生的class支持后,對象的創建,繼承更加直觀了,并且父類方法的調用,實例化,靜態方法和構造函數等概念都更加形象化。

	class PropertyView extends Component {	  render() {	    return (	      <View></View>	    )	  }	}//等價于	var PropertyView = React.createClass({	  render() {	    return (	      <View></View>	    )	  }	})

方法定義(method definition)

ECMAScript 6中,引入了一種名叫方法定義(method definition)的新語法糖,相對于以前的完整寫法,這種簡寫形式可以讓你少寫一個function鍵字.

 React.createClass({   render() {     return (       <View></View>     )   } })//等價于 React.createClass({   render : function() {     return (       <View></View>     )   } })

以上是小編給大家分享的react native es6語法,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品爱久久久久久久| 日韩动漫免费观看电视剧高清| 尤物九九久久国产精品的分类| 26uuu日韩精品一区二区| 国产精品久久久久久久久久小说| 成人h猎奇视频网站| 在线精品播放av| 中文字幕日韩在线播放| 欧美大片在线看免费观看| 久久人91精品久久久久久不卡| 国内自拍欧美激情| 精品美女永久免费视频| 日韩色av导航| 欧美壮男野外gaytube| 91亚洲国产成人精品性色| 欧日韩在线观看| 国产精品一区二区3区| 亚洲精品乱码久久久久久按摩观| 欧美黑人巨大精品一区二区| 国产一区二区丝袜高跟鞋图片| 亚洲成人动漫在线播放| 日韩av免费在线观看| 狠狠色香婷婷久久亚洲精品| 欧美精品videos另类日本| 亚洲人午夜色婷婷| 亚洲欧洲第一视频| 欧美精品电影在线| 欧美性理论片在线观看片免费| 国产成人精品a视频一区www| 久久精品亚洲热| 中文字幕国产日韩| 国产精品高潮呻吟视频| 在线国产精品视频| 91久久久久久久久久久久久| 久久精品亚洲热| 亚洲男人第一网站| 亚洲激情第一页| 日韩美女视频免费在线观看| 国产精品1区2区在线观看| 国产精品露脸av在线| 日韩高清电影好看的电视剧电影| 日韩福利伦理影院免费| 久久久久久久影视| 国产精品小说在线| 国产精品678| 国产精品视频免费在线观看| 亚洲91av视频| 中国人与牲禽动交精品| 亚洲自拍在线观看| 亚洲天堂成人在线视频| 日韩69视频在线观看| 亚洲老头同性xxxxx| 亚洲欧美制服丝袜| 日本欧美精品在线| 亚洲自拍高清视频网站| 亚洲电影在线观看| 国产丝袜视频一区| 国产精品一区电影| 精品偷拍一区二区三区在线看| 日韩视频永久免费观看| 中文国产成人精品| 亚洲欧洲免费视频| 九九热精品在线| 精品五月天久久| 亚洲天堂影视av| 日韩在线播放av| 色综合亚洲精品激情狠狠| 欧美寡妇偷汉性猛交| 91在线精品播放| 欧美激情xxxxx| 色妞久久福利网| 色爱av美腿丝袜综合粉嫩av| 国产亚洲欧美aaaa| 欧美在线亚洲一区| 日韩欧美中文字幕在线播放| 欧美日韩免费看| 另类少妇人与禽zozz0性伦| 日韩av在线免费观看| 国产中文字幕日韩| 人体精品一二三区| 欧美激情小视频| 91精品国产自产在线老师啪| 成人国产精品一区| 日本a级片电影一区二区| 国产成人精品亚洲精品| 亚洲人成伊人成综合网久久久| 久久激情视频久久| 亚洲国产欧美在线成人app| 国产成人在线精品| 91高潮精品免费porn| 国产精品99久久99久久久二8| 午夜精品一区二区三区视频免费看| 9.1国产丝袜在线观看| 国产精品美女www爽爽爽视频| 久久人人97超碰精品888| 日韩av在线免播放器| 97人洗澡人人免费公开视频碰碰碰| 色婷婷av一区二区三区在线观看| 91高清视频免费观看| 国产精品免费观看在线| 欧美亚洲成人xxx| 成人看片人aa| 欧美日韩免费观看中文| 亚洲精品日韩激情在线电影| 国产情人节一区| 中文字幕少妇一区二区三区| 欧美亚洲在线播放| 国产精品视频网| 国产欧美日韩中文字幕| 亚洲免费电影一区| 国产亚洲日本欧美韩国| 中文字幕久热精品视频在线| 九九热这里只有精品6| 中文字幕亚洲无线码a| 在线观看久久久久久| 欧美大尺度激情区在线播放| 国产精品老牛影院在线观看| 欧美另类高清videos| 97久久精品在线| 亚洲热线99精品视频| 人体精品一二三区| 97在线观看免费高清| 黑人巨大精品欧美一区免费视频| 午夜精品视频网站| 黄色精品一区二区| 亚洲va男人天堂| 欧美成人四级hd版| 亚洲欧洲av一区二区| 欧美午夜片欧美片在线观看| 欧美亚洲在线视频| 亚洲三级免费看| 亚洲国产精品免费| 国产精品高清在线观看| 亚洲伊人一本大道中文字幕| 68精品国产免费久久久久久婷婷| 超薄丝袜一区二区| 国内精品美女av在线播放| 4p变态网欧美系列| 国产在线观看精品一区二区三区| 久久久久久久久久久国产| 久久福利视频网| 中文字幕在线成人| 国产精品欧美日韩一区二区| 97av在线视频免费播放| 2019中文字幕全在线观看| 亚洲精品狠狠操| 日韩av影视在线| 国产精欧美一区二区三区| 亚洲国产日韩一区| 国产精品久久色| 亚洲精品国产欧美| 自拍偷拍亚洲区| 91性高湖久久久久久久久_久久99| 国产精品久久久久影院日本| 精品亚洲一区二区三区在线播放| 国产精品一区二区久久精品| 久久久久女教师免费一区| 国产亚洲精品美女久久久久| 日本一区二区不卡| 成人国产精品免费视频| 成人免费视频在线观看超级碰| 国产噜噜噜噜噜久久久久久久久| 欧美在线视频观看免费网站| 久久久亚洲欧洲日产国码aⅴ|