jxs

199 阅读1分钟

Vue中的视图是基于template来实现的,并且基于vue-template-compiler模块来实现模版解析「把模版语法变为虚拟DOM->vnode」,经过dom-diff处理后,变为真实的DOM
React中是基于jsx来实现视图层的构建,并且基于babel-preset-react-app"模块来生成虚拟DOM对象,最后也是经过DOM-DIFF对比,变为真实的DOM

JSX:javascript and xml「html」

  • 嵌入JS表达式「处理完有结果的」。基于{}即可
  • 变量
  • 一元运算
  • 判断:三元运算符
  • 对于循环可以使用数组的map方法,但是foreach和自己写的循环不行
  • null和undefined在jsx中代表的是空元素
  • 如果嵌套的是一个数组,它会把数组中的每一项作为一个元素放在视图中,中间不会有逗号分隔
  • 基于map循环绑定的元素,需要设置key存唯一值,只要是当前循环中是唯一的即可
  • 事件绑定基于 onXXX={函数}实现,使用细节上和原生JS基本类似「后期会研究里面的this和事件对象」

  • <></>在JSX中Fragment标签:保证了只有一个根结点,但是不会加深HTML结构层级
  • 给元素设置class,需要基于className设置
  • 基于style设置样式,样式值必须是一个对象 style={样式对象}
  • 大括号中不允许直接嵌入普通对象,(数组可以,而且可以排除设置style),但是可以嵌入一个JSX元素对象
  • template是模版语法,如何使用模版已经规定好了,所以使用起来会略微死板,而jsx表现的还是很灵活的!