当前位置:   article > 正文

node里exports的用法_nodejs 数组 export

nodejs 数组 export

目录

共享变量

共享方法

共享构造

共享类


exports可以共享方法、变量、构造、类。
exports的本质是一个数组,访问域是共有的。

  1. //打印一下exports
  2. console.log(exports);
  3. //结果是一个空数组

共享变量

exportDemo.js(被引用的)

  1. //打印一下exports
  2. console.log(exports);
  3. //结果是一个空数组
  4. //共享变量
  5. var aa=123;
  6. exports.aa=aa;
  7. //打印的结果是一个键值对关系的数组{aa:123}
  8. console.log(exports);

exportsUse.js(引用方)

  1. //导入被引用的js文件
  2. var exportsDemo=require("./exportsDemo.js");
  3. //直接调用aa,这里的aa对应的是exports对应的key
  4. console.log(exportsDemo.aa);

共享方法

exportDemo.js(被引用的)

  1. //打印一下exports
  2. console.log(exports);
  3. //结果是一个空数组
  4. //共享方法
  5. function aa(num1,num2){
  6. console.log("被共享的方法哦~");
  7. return (num1+num2);
  8. }
  9. //注意共享方法不能有小括号(哪怕是有参方法),一但有了括号就会根据return的内容直接返回对应的值
  10. exports.aa=aa;
  11. console.log(exports);
  12. //打印结果: {aa:[Function:aa]}
  13. //若加了括号
  14. exports.bb=aa();
  15. console.log(exports);
  16. //打印结果:{aa:[Function:aa],bb:NaN}

exportsUse.js(引用方)

  1. //导入被引用的js文件
  2. var exportsDemo=require("./exportsDemo.js");
  3. //直接调用aa,这里的aa对应的是exports对应的key
  4. console.log(exportsDemo.aa(2,5));
  5. //打印的结果是 被共享的方法哦~ 7

共享构造

exportDemo.js(被引用的)

  1. //定义一个构造方法
  2. function Person(name,age,sex){
  3. this.name=name;
  4. this.age=age;
  5. this.sex=sex;
  6. }
  7. //这里就需要用到module了,module使用场景:类、构造方法
  8. module.exports=Person;
  9. console.log(exports);
  10. //打印结果为空

exportsUse.js(引用方)

  1. //导入被引用的js文件
  2. var exportsDemo=require("./exportsDemo.js");
  3. var per=new exportsDemo("吴师傅",18,"男");
  4. console.log(per);
  5. //打印结果Person { name: '吴师傅', age: 18, sex: '男' }

共享类

exportDemo.js(被引用的)

  1. var React=require("react");
  2. var ReactDom=require("react-dom");
  3. class Header extends React.Component{
  4. render(){
  5. return (<div>这是头部</div>)
  6. }
  7. }
  8. module.exports=Header;


exportsUse.js(引用方)

  1. var React=require("react");
  2. var ReactDom=require("react-dom");
  3. //导入子组件
  4. var Header=require("./Header.jsx");
  5. var Footer=require("./footer.jsx");
  6. //例子:定义参数以及方法调用
  7. class Main extends React.Component{
  8. //定义参数得放在constructor里
  9. constructor(){
  10. //定义参数
  11. super();
  12. this.state={timer:0}
  13. }
  14. //自定方法每次加1
  15. tick(){
  16. console.log(this);
  17. this.setState({
  18. timer:(this.state.timer+1)
  19. })
  20. }
  21. //点击方法
  22. trach(){
  23. console.log("运行点击方法了")
  24. }
  25. //类似Vue里的created钩子函数
  26. componentDidMount(){
  27. //若不用箭头函数包裹起方法(this.tick())那么tick里面的this就是一个window对象.会报错
  28. //包裹起来后的this就是main,这样的this才能指向timer
  29. setInterval(()=>{this.tick()},1000)
  30. }
  31. render(){
  32. return (
  33. <div>
  34. <Header/>
  35. <p>{this.state.timer}
  36. <span><button onClick={this.trach.bind(this)}>点击事件</button></span>
  37. </p>
  38. </div>
  39. )
  40. }
  41. }
  42. ReactDom.render(<Main/>,document.getElementById("box"));

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/748221
推荐阅读
相关标签
  

闽ICP备14008679号