背景知识
谨记:import进来的代码就会被执行,比如:
import App from './App';
import config from './config';
const store = createStore(reducer);
-
当import config的时候,config里的代码就被执行,而App是一个函数,也被加入到内存中,只是被渲染的时候执行而已;
-
当创建store的时候config里的代码已经执行完;
-
import采用的是单例模式,只被执行一次;
-
App.defaultProps = { name: ‘aa’ }, 其中在App的defaultProps里定义的变量其实是全局变量,之所以用defaultProps是因为React早期是Class组件,定义全局变量不方便(如果定义在render还是函数作用域),而函数组件就其实可以不用defaultProps,直接定义全局变量。
// let name = 'aa'; // 等价下面的defaultProps function App() { return ( <div>aa</div> ) } App.defaultProps = { name: 'aa' }
-
- a.js里的list为全局遍历,因为被a引用着,a为全局变量。所以输出结果为1 和 1 2
- export 出去的A,为一个函数
// main.jsx import { A } from './a.js'; export default function Main() { console.log(A) return ( <Provider store={ store()}> <A>1</A> // 1 <A>2</A> // 12 </Provider> ); }
// a.js let a = []; const A = ({ list = a, children }) => { list.push(children); return ( list.map(item => item) ); }; console.log('cccccc')