code: function getTemplate(sName,sPrefix) {
      var tp = typeof sName;
      if (tp != 'string') {
        if (reactIsValid_(sName)) {
          iTagType = 3;
          return sName;   // sName is ReactElement
        }
        else if (tp == 'function') {
          iTagType = 2;
          return sName;
        }
        else return null; // error
      }
      
      var temp, shadowCls = sPrefix? W.$main[sPrefix]: null;
      if (!shadowCls) {   // if has shadowCls, not use cached template
        temp = dTempSet[sName];
        if (temp || temp === null) {
          iTagType = 0;
          return temp;
        }
      }
      
      var ch, b = sName.split('.'), sAttr = b.shift();
      if (b.length == 0 && ((ch=sAttr[0]) < 'A' || ch > 'Z')) {
        iTagType = 1;
        return sAttr;     // createClass_(sAttr); // such as: ['div',{}]
      }
      else iTagType = 0;
      
      temp = T[sAttr];
      while (temp && (sAttr = b.shift())) {
        temp = temp[sAttr];
      }
      if (!temp || !temp._extend)
        dTempSet[sName] = temp = null;  // set null, no try next time
      else {
        if (shadowCls)
          temp = createClass_(temp._extend(shadowCls));
        else dTempSet[sName] = temp = createClass_(temp._extend());
      }
      return temp;
    }
docs: 0:WTC 1:tag 2:ReactClass 3:ReactElement