React Native之导出

举报
chenyu 发表于 2021/07/26 23:45:33 2021/07/26
【摘要】 1 React Native里面一般导出函数或者常量或者组件   如果是默认组件或者类(export default修饰)的话,在另外一个地方导入的时候不需要加上{},格式如下   导出 export default class Student { }   导入 import Student from "./file" &nb...

1 React Native里面一般导出函数或者常量或者组件

  如果是默认组件或者类(export default修饰)的话,在另外一个地方导入的时候不需要加上{},格式如下
  导出


  
  1. export default class Student {
  2. }

  导入

 import Student from "./file"

 

  如果不是默认组件或类或则方法或则变量(没有用default修饰)的话,在另外一个地方导入的时候需要加上{},格式如下
  导出:使用module.exports

  module.exports = {fun1, fun2, 常量}
 

  导入

 import {xxx2, xxx2, ...} from "./file"
 

 

好处:在另外一个文件地方导入了,就可以使用导入的函数或者变量或者组件,非常方便,相当于java里面的import导入类文件一样.

还可以是用一个变量,然后变量里面放键值对数组,key是函数名字,value是函数实现

如下


  
  1. let fun = {fun1 : (a, b) => {return a + b}, fun2 : (a, b) => {return a - b}}
  2. export default fun;

 

 

 

 

2 简单测试

  Student.js文件如下


  
  1. 'use strict';
  2. import React from 'react'
  3. class Student {
  4. constructor(name: string) {
  5. this.name = name;
  6. }
  7. _getName = () => {
  8. console.log("_getName");
  9. return this.name;
  10. };
  11. }
  12. export default Student


  Fun.js文件如下


  
  1. 'use strict';
  2. import React from 'react'
  3. const sum = (a, b) => {
  4. return a + b;
  5. }
  6. const sub = (a, b) => {
  7. return a - b;
  8. }
  9. const myName = 'chenyu';
  10. module.exports = {
  11. sum,
  12. sub,
  13. myName
  14. }


Fun_second.js文件如下


  
  1. 'use strict';
  2. import React from 'react'
  3. //我们把所有的函数放在一个变量里面,这个变量里面放的都是键值对,
  4. //然后key是函数名字,value是我们函数实现
  5. let fun = { //记得这是是let fun = { },不是let fun {}
  6. //相加函数
  7. sum : (a, b) => {
  8. return a + b;
  9. },
  10. //相减函数
  11. sub : (a, b) => {
  12. return a - b;
  13. }
  14. }
  15. export default fun;

 

 

App.js文件如下


  
  1. import React from 'react';
  2. import {View, Text} from 'react-native';
  3. import {DeviceEventEmitter} from "react-native";
  4. import Student from "./Student"
  5. import {sub, sum, myName} from "./Fun"
  6. import fun from "./Fun_second"
  7. export default class App extends React.Component {
  8. constructor(props) {
  9. super(props);
  10. this.state = {
  11. name: '点击我',
  12. sumRes: 'sumRes',
  13. subRes: 'subRes',
  14. stuName: 'hello',
  15. sumRes_sec: 'sumRes_sec',
  16. subRes_: 'subRes_'
  17. };
  18. }
  19. render() {
  20. return (
  21. <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
  22. <Text
  23. onPress={() => this._press(5, 2)}
  24. >{this.state.name}</Text>
  25. <Text>{this.state.sumRes}</Text>
  26. <Text>{this.state.subRes}</Text>
  27. <Text>{this.state.stuName}</Text>
  28. <Text>{this.state.sumRes_sec}</Text>
  29. <Text>{this.state.subRes_}</Text>
  30. </View>
  31. );
  32. }
  33. _press = (a, b) => {
  34. this.setState({name: myName});
  35. let res = sum(a, b);
  36. console.log("res is:" + res);
  37. this.setState({sumRes : res});
  38. let res1 = sub(a, b);
  39. console.log("res1 is:" + res1);
  40. this.setState({subRes : res1});
  41. let student = new Student("chengongyu");
  42. let studentName = student._getName();
  43. this.setState({stuName : studentName});
  44. let sumSec = fun.sum(4, 9);
  45. this.setState({sumRes_sec : sumSec});
  46. let subSec = fun.sub(10, 2);
  47. this.setState({subRes_: subSec});
  48. }
  49. }

 

 

 

3 运行结果

点击 '点击我'之后效果如下

 

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/83097464

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。