var h = require('virtual-dom/h')
var createElement = require('virtual-dom/create-element')
var tree = h('p', 'virtual dom')
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
var tree = h('div.foo#some-id', [
'입력해주세요 ',
h('span', 'some text'),
h('input', { type: 'text', value: 'foo' }),
])
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
h('div.container', list)
h('div', { className: 'container' }, list)
// 위 둘의 결과 값은 같다.
<div class="container"></div>
h('div#container', list)
h('div', { id: 'container' }, list)
// 위 둘의 결과 값은 같다.
<div id="container"></div>
var h = require('virtual-dom/h')
var createElement = require('virtual-dom/create-element')
// Virtual DOM
var tree = h('p', 'virtual dom')
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
console.log(typeof h) // function
console.log(typeof createElement) // function
console.log(tree) // VirtualNode (가상노드)
var patches = diff(tree, newTree)
patch(rootNode, patches)
var h = require('virtual-dom/h')
var createElement = require('virtual-dom/create-element')
var diff = require('virtual-dom/diff')
var patch = require('Virtual-dom/patch')
var count = 0
function render(n) {
return h('p', 'virtual dom ' + n)
}
function update() {
// 새로운 가상 트리를 생성
var newTree = render(++count) // 1, 2, 3, ...
// 기존 가상 트리, 새로운 가상 트리하고 변경점이 있는지 확인
var patches = diff(tree, newTree)
// 변경사항이 발생하면 rootNode에 패치(붙인다)
patch(rootNode, patches)
}
// Virtual DOM
var tree = render(count)
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
window.setInterval(function () {
update()
}, 1400)
var h = require('virtual-dom/h')
var createElement = require('virtual-dom/create-element')
var diff = require('virtual-dom/diff')
var patch = require('Virtual-dom/patch')
var data = ['vue.js', 'angular', 'react']
function render(data) {
var lists = data.map(function (item, index) {
return h('li', item)
})
return h('ul', lists)
}
// Virtual DOM
var tree = render(data)
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
var data = ['vue.js', 'angular', 'react']
function render(data) {
var lists = data.map(function (item, index) {
return h('li', [
item,
h(
'button',
{
type: 'button',
onclick: function (e) {
data.splice(index, 1)
console.log(data)
update()
},
},
'delete'
),
])
})
return h('ul', lists)
}
function update() {
var newTree = render(data)
var patches = diff(tree, newTree)
patch(rootNode, patches)
}
// Virtual DOM
var tree = render(data)
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
function update() {
var newTree = render(data)
var patches = diff(tree, newTree)
patch(rootNode, patches)
// tree 변수 값 업데이트
tree = newTree
}
var h = require('virtual-dom/h')
var createElement = require('virtual-dom/create-element')
var diff = require('virtual-dom/diff')
var patch = require('Virtual-dom/patch')
var data = ['vue.js', 'angular', 'react']
function render(data) {
var lists = data.map(function (item, index) {
return h('li', [
item,
h(
'button',
{
type: 'button',
onclick: function (e) {
data.splice(index, 1)
console.log(data)
update()
},
},
'delete'
),
])
})
var list = h('ul', lists)
var input = h('input.add-content', {
type: 'text',
placeholder: 'Add Favorite Framework',
})
var add_button = h(
'button.add-button',
{
type: 'button',
onclick: function (e) {
var input = document.querySelector('.add-content')
// 모델 데이터 업데이트
data.push(input.value)
// 화면 뷰 업데이트
update()
// 콘솔 변경된 데이터 출력
input.value = ''
},
},
'Add'
)
var container = h('div.container', [input, add_button, list])
return container
}
function update() {
var newTree = render(data)
var patches = diff(tree, newTree)
patch(rootNode, patches)
// tree 변수 값 업데이트
tree = newTree
}
// Virtual DOM
var tree = render(data)
var rootNode = createElement(tree)
document.body.appendChild(rootNode)
// JSX
const reactElement =
<h1 lang='en' className='headline'>
<strong>React</strong>{' '}
<abbr title='Application Programming Interfaces'>APIs</abbr>
</h1>
ReactDOM.render(reactElement, document.getElementById('root'))
// Virtual DOM
var h = require('virtual-dom/h')
var createElement = require('virtual-dom/create-element')
var abbr = h('abbr', { title: 'Application Programming Interfaces' }, 'APIs')
var strong = h('strong', 'React')
var head = h('h1. headline', { leng: 'en' }, [strong, abbr])
var rootNode = createElement(head)
document.body.appendChild(rootNode)