Skip to content

Releases: Neojs-framework/Neo-v2

feat: enable $ binding inside ::attrs with proper render order

31 Jan 12:54
7fb0b33

Choose a tag to compare

##μΆ”κ°€λœ κΈ°λŠ₯

  1. ::attrsκΈ°λŠ₯에 $바인딩 μΆ”κ°€
@input:input [hello] {
  ::attrs: {
    type: "text",
    placeholder: $Store.count
  }
}

μ˜ˆμ •λœ κΈ°λŠ₯

  • 쑰건 λ Œλ”λ§ ::if
::if ($Store.loggedIn) {
  @Profile:div { ... }
}

feat: fix attrs scope by parsing children before meta blocks

30 Jan 13:13
1950141

Choose a tag to compare

μΆ”κ°€λœ κΈ°λŠ₯

  • attrs블둝
    • attrs {....}λ₯Ό 톡해 html고유 속성을 μ§€μ •ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ • κΈ°λŠ₯

  • 속성 바인딩

    ::attrs {
      value: $Store.text
    }
    
  • 쑰건 λ Œλ”λ§

     ::if ($Store.loggedIn) {
      @Profile:div { ... }
    }
    
  • 반볡 λ Œλ”λ§

    ::for (item in Store.list) {
      @Item:li {
        innerHTML: $item.name
      }
    }
    

feat: add nested children parsing and rendering support

28 Jan 12:18
eabfa74

Choose a tag to compare

μΆ”κ°€λœ κΈ°λŠ₯

  • μžμ‹ νŒŒμ‹±
    • 단일 νƒœκ·Έλ§Œ ν—ˆμš©λ˜μ—ˆμ§€λ§Œ μžμ‹νƒœκ·Έ 지원
  • μžλ™ μž¬λžœλ”
    • λ°”μΈλ”©λœ λ³€μˆ˜ 값이 λ°”λ€”λ•Œλ§ˆλ‹€ 전채가 μžλ™ μž¬λžœλ”

What's next?

  • attrs{....}둜 고유 html속성 관리

Neo v2.1.0 – Runtime-first UI DSL

25 Jan 08:26
96d0812

Choose a tag to compare

Pre-release

πŸš€ Neo Framework v2.1.0 Release Notes

Release Date: 2026-01
Version: v2.1.0
Package: @junnyontop-pixel/neo-app


✨ Overview

Neo v2.1.0은 runtime-first UI DSL을 λͺ©ν‘œλ‘œ ν•œ μ•ˆμ •ν™” λ¦΄λ¦¬μ¦ˆμž…λ‹ˆλ‹€.
이 버전뢀터 NeoλŠ” JavaScript λ‘œμ§μ„ 직접 닀루지 μ•ŠμœΌλ©°,
UI μ„ μ–Έμ—λ§Œ μ§‘μ€‘ν•˜λŠ” μ΄ˆκ²½λŸ‰ ν”„λ ˆμž„μ›Œν¬λ‘œ μž¬μ •μ˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

v1의 λ³΅μž‘ν•œ ꡬ쑰와 μœ μ§€λ³΄μˆ˜ ν•œκ³„λ₯Ό μ™„μ „νžˆ μ œκ±°ν•˜κ³ ,
λ‹¨μˆœν•˜κ³  예츑 κ°€λŠ₯ν•œ λ Œλ”λ§ λͺ¨λΈμ„ μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€.


πŸ”₯ Major Changes

1️⃣ Runtime-first Architecture

  • λΉŒλ“œ / 컴파일 단계 제거
  • .neo νŒŒμΌμ„ λΈŒλΌμš°μ €μ—μ„œ 직접 λ‘œλ“œ β†’ νŒŒμ‹± β†’ λ Œλ”λ§
  • Vite, Webpack λ“± λΉŒλ“œ 도ꡬ에 λΉ„μ˜μ‘΄μ 

2️⃣ UI / Logic μ™„μ „ 뢄리

  • UI: .neo
  • μƒνƒœ & 둜직: 순수 JavaScript (state.js, actions.js)
  • NeoλŠ” JavaScriptλ₯Ό ν•΄μ„ν•˜κ±°λ‚˜ λ³€ν˜•ν•˜μ§€ μ•ŠμŒ

3️⃣ Global Store Pattern 지원

  • window.Store 기반 μ „μ—­ μƒνƒœ μ ‘κ·Ό

  • ν…œν”Œλ¦Ώ 바인딩 지원:

    innerHTML: "ν˜„μž¬ 숫자: $Store.count"
    
  • μ΄λ²€νŠΈμ—μ„œ Store λ©”μ„œλ“œ 직접 호좜 κ°€λŠ₯:

    on:click: Store.add()
    

4️⃣ λ‹¨μˆœν•˜κ³  λͺ…ν™•ν•œ Render Model

  • μžλ™ λ°˜μ‘ν˜• ❌
  • λͺ…μ‹œμ  전체 μž¬λ Œλ” β­•
  • μƒνƒœ λ³€κ²½ μ‹œ __neoRender() 호좜 방식
Store.count++;
// μžλ™μœΌλ‘œ main.jsμ—μ„œ 호좜

🧠 Design Philosophy

  • NeoλŠ” JavaScript ν”„λ ˆμž„μ›Œν¬κ°€ μ•„λ‹™λ‹ˆλ‹€.
  • NeoλŠ” μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • NeoλŠ” UI μ„ μ–Έλ§Œ λ‹΄λ‹Ήν•©λ‹ˆλ‹€.

JavaScriptλŠ” JavaScriptλ‹΅κ²Œ,
UIλŠ” Neo둜 μ„ μ–Έν•˜μ„Έμš”.


⚠️ Breaking Changes

  • #Script 문법 제거
  • 컴파일러(neoc) μ‚¬μš© 방식 λ³€κ²½
  • Neo λ‚΄λΆ€ JavaScript μ»¨ν…μŠ€νŠΈ/μƒνƒœ 관리 제거
  • v1 ν”„λ‘œμ νŠΈμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŒ

πŸ— Recommended Project Structure

project-root/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ App.neo
β”‚   β”œβ”€β”€ state.js
β”‚   └── actions.js
β”œβ”€β”€ index.html
└── vite.config.js (optional)

πŸ“Œ Notes

  • Neo v2.1.0은 μ‹€ν—˜μ  λ¦΄λ¦¬μ¦ˆμž…λ‹ˆλ‹€.
  • λŒ€κ·œλͺ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜λ³΄λ‹€λŠ” μ†Œκ·œλͺ¨ / μ‹€ν—˜μ  UI ν”„λ‘œμ νŠΈμ— μ ν•©ν•©λ‹ˆλ‹€.
  • ν–₯ν›„ λ²„μ „μ—μ„œ 쀑첩 UI, λΆ€λΆ„ λ Œλ”λ§ 등이 검토될 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“„ License

MIT License