<script src="https://cdn.jsdelivr.net/gh/kirakiray/ofa.js/dist/ofa.min.js"></script>
다른 프런트엔드 프레임워크와 달리 ofa.js를 기반으로 개발된 컴포넌트를 개발하는 데 복잡한 시작 가이드를 읽을 필요가 없습니다. HTML 파일을 즉시 만들어 "로고 펀치 아웃" 컴포넌트를 체험해 보세요.
<!-- ofa.js 프로젝트로 임포트 -->
<script src="https://cdn.jsdelivr.net/gh/kirakiray/ofa.js/dist/ofa.min.js"></script>
<!-- 개발한 punch-logo 컴포넌트 로드 -->
<l-m src="https://ofajs.github.io/ofa-v4-docs/docs/publics/comps/punch-logo.html"></l-m>
<!-- punch-logo 컴포넌트 사용 -->
<punch-logo style="margin:50px 0 0 100px;">
<img src="https://ofajs.github.io/ofa-v4-docs/docs/publics/logo.svg" logo height="90" />
<h2>야근 끝</h2>
<p slot="fly">퇴근 시간</p>
<p slot="fly">나중에 퇴근</p>
<p slot="fly">주말에 야근</p>
</punch-logo>
과거의 Web Components의 캡슐화는 복잡한 지식 학습이 필요했지만, 지금은 단 한 개의 파일만으로도 가능합니다.
<template component>
<style>
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
background-color: #ccc;
transition: background-color 0.4s;
border-radius: 34px;
cursor: pointer;
}
.slider {
position: absolute;
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
transition: transform 0.4s;
border-radius: 50%;
}
.switch.checked {
background-color: #2196f3;
}
.switch.checked .slider {
transform: translateX(26px);
}
</style>
<div class="switch" class:checked="checked" on:click="checked = !checked">
<span class="slider"></span>
</div>
<script>
export default {
tag: "my-switch",
data: {
checked: true,
},
};
</script>
</template>
아래 번역 결과를 확인하세요.```html
</comp-viewer>
<comp-viewer switch-name="Set Properties" comp-name="prop-demo" max-height="500" style="width:100%;">
```html
<template component>
<div :text="txt1"></div>
<div :html="txt2"></div>
<script>
export default {
tag: "prop-demo",
data: {
txt1:"<b>나는 txt1입니다</b>",
txt2:"<b>나는 txt2입니다</b>",
},
};
</script>
</template>
<template component>
<div>{{txt}}</div>
<input type="text" sync:value="txt" />
<script>
export default {
tag: "sync-demo",
data: {
txt:"I am txt",
},
};
</script>
</template>
<template component>
<div>count: {{count}}</div>
<button on:click="count++">count++</button>
<script>
export default {
tag: "event-demo",
data: {
count: 0
},
};
</script>
</template>
<template component>
<x-if :value="count % 2">
<div style="color:red">{{count}}</div>
</x-if>
<x-else>
<div style="color:blue">{{count}}</div>
</x-else>
<button on:click="count++">count++</button>
<script>
export default {
tag: "if-demo",
data: {
count: 0
},
};
</script>
</template>
<template component>
<ul>
<x-fill :value="lists">
<li>{{$index}} - {{$data.name}}</li>
</x-fill>
</ul>
<script>
export default {
tag: "fill-demo",
data: {
lists:[{name:"One"}, {name:"Two"}, {name:"Three"}]
},
};
</script>
</template>
// jQuery Code
$("#target").html("some html code"); // html 설정
$("#target").text("set text"); // 텍스트 설정
var ele_text = $("#target").text(); // 텍스트 가져 오기
var parents = $("#target").parents(); // 모든 상위 요소 가져 오기 (배열)
var child = $("#target").children()[0]; // 첫 번째 자식 요소 가져 오기
// ofa.js Code
$ =("#target").html = "일부 html 코드"; // html 설정
$("#target").text = "텍스트 설정"; // 텍스트 설정
var ele_text = $("#target").text; // 텍스트 가져 오기
var parents = $("#target").parents; // 모든 상위 요소 가져 오기 (배열)
var child = $("#target")[0]; // 첫 번째 자식 요소 가져 오기