Skip to content

Instantly share code, notes, and snippets.

View krcrawford's full-sized avatar

Kyle Crawford krcrawford

  • McKinney, TX, USA
View GitHub Profile
@krcrawford
krcrawford / tic-tac-toe.js
Created March 7, 2019 15:47
Javascript Homework #8 JS
const startGame = () => {
let team = 'X';
const board = [
['-', '-', '-'],
['-', '-', '-'],
['-', '-', '-'],
];
const updateBoard = (id) => {
switch (id) {
case 'tl':
@krcrawford
krcrawford / tic-tac-toe.css
Created March 7, 2019 15:48
Javascript Homework #8 CSS
h1 {
display: block;
text-align: center;
}
#board {
display: block;
width: 156px;
height: 156px;
border: 1px solid #000000;
@krcrawford
krcrawford / createElement.js
Created March 9, 2019 00:15
VDOM - create
const createElement = (tagName, { attrs, children }) => {
const vEl = Object.create(null);
Object.assign(vEl, {
tagName,
attrs,
children,
});
return vEl;
}
@krcrawford
krcrawford / render.js
Created March 9, 2019 00:23
VDOM - render
const render = (vNode) => {
if (typeof vNode === 'string') {
return document.createTextNode(vNode);
}
const { tagName, attrs, children } = vNode;
const el = document.createElement(tagName);
for (const [k, v] of Object.entries(attrs)) {
if (/^on/.test(k)) {
const eventType = k.replace(/^on/, '').toLowerCase();
el.addEventListener(eventType, v);