検索
ホームページウェブフロントエンドjsチュートリアルepii.js テンプレート エンジンの概要

epii.js とは

  • epii.js は、データを UI に迅速にバインドし、イベント バインディングと処理を迅速に実装できるテンプレート エンジンであり、ネイティブでサードパーティのライブラリ (8k のみ) に依存しません。 +Webapp 開発および Web 開発は h5 マイクロ Web ページ上で使用でき、他のフレームワークと競合しません。

  • 開発者は、データや UI、イベント処理の実装に多くの時間を費やすのではなく、アプリケーション自体に集中できるようになります。効率が大幅に向上します。

プロジェクトアドレス


1、基本的なデータバインディング

  • epii カスタムdomノード属性r-dataは任意のタイプのノードに値を割り当てることができ、入力ノードには最終的にそのvalue属性が割り当てられます、img ノードには値が割り当てられ、その src 属性と他のタイプのノードには innerHtml 属性が割り当てられます。

  • r-data-defaultが設定されている場合、データがない場合はデフォルト値が表示されます。

  • r-data="title" と r-data="{title}" の違いは、タイトル値が存在しない場合、前者の場合はタイトル文字列が表示され、後者の場合は空になることです。 2 番目のケースでは、r-data-default が設定されている場合、デフォルト値が表示されます

  • 次のコードの効果は、https://epaii.github.io/epii.js/ でプレビューできます。 demo/demo1.html

    <div>
      <h1>
      </h1>
      <div></div>
      <br>
       <div></div>
    <!-- 默认值-->
      <br>
      <input><!-- input 负值方法1-->
      <input><!-- input 负值方法2-->
      <br>
      <img  alt="epii.js テンプレート エンジンの概要" ><!-- img 负值方法1-->
      ![]({img_url})<!-- img 负值方法2  ,但这种存在缺点,因为在解析前,已经加载一次不存在的图片,多一次请求,不推荐-->
    </div>
    <script>  var myepii = epii(document.getElementById("content"));//初始化殷勤,需要制定dom节点 可以是 body
      myepii.setData({
          title: "我是标题",
          content: "我是内容主题",
          inputvalue: "input内容",
          img_url:"https://www.baidu.com/img/bd_logo1.png",
          img_width:100
      });
    
      setTimeout(function () {
          myepii.setData({
              title: "我是新的标题",
              content: "我是新的内容主题"  });
      }, 3000);</script>

    2 データ バインディング用のその他の構文

  • epii は、dom ノード属性の変数バインディングを実現でき、スタイル、幅、その他の任意の属性の変数タグを使用できます。次のコードの効果は、ここのプレビューで確認できます

  • は、{info.subject} などのチェーン変数をサポートしています
    https://epaii.github.io/epii.js/demo/demo2.html

<div>
    <h1>
    </h1>
    <div></div>
    <br>
    <img  alt="epii.js テンプレート エンジンの概要" >

</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        h1_width:100,
        h1_height:100,
        h1_color:"red",
        title: "我是标题",
        info:{subject:"文章简介"},
        img:{
            img_url: "https://www.baidu.com/img/bd_logo1.png",
            img_width: 100}
    });

    setTimeout(function () {
        myepii.setData({
            title: "我是新的标题",
            h1_width:300,
            h1_height:300,
            h1_color:"blue",
            img:{  img_width:300}
        });
    }, 3000);</script>

3 ノードの非表示/表示

  • epii DOM ノードの非表示と表示を設定するには 2 つの方法があります

  • 方法 1、style="display: {h1_display}" によるバインドstyle 属性

  • メソッド 2、r による - 表示タグ r-display="{img_show}-1==0" はブール式文字列である必要があります。このメソッドの使用をお勧めします

  • 。次のコードは、https://epaii.github でプレビューできます。 io/epii.js/demo/demo3.html

<div>
    <h1> <!--第一种方法,直接在style中 用变量,不推荐-->
    </h1>
    <br>
    <img  alt="epii.js テンプレート エンジンの概要" ><!--第二种方法,使用 r-display 标签,推荐-->

</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        title: "我是标题",
        h1_display:"block",

        img_url:"https://www.baidu.com/img/bd_logo1.png",
        img_show:1});

    setTimeout(function () {//两种方法隐藏        myepii.setData({
            h1_display:"none",
            img_show:0});
    }, 3000);</script>

4 Click events

  • epii は、r-click-change を使用し、 r-click-function クリック イベントとタグ コンテンツを実装する 2 つのタグ 可変シンボルを使用できます。そのうち、r-click-change タグはクリックでカスタマイズされたジャンプを実装し、r-click-function タグはクリックでトリガーされるカスタム関数を実装します

  • r-click-change="http://www.baidu.com/?1={title}" クリックすると直接ジャンプします

  • r-click-function="on_subject_click#{info.subject}# {title}" と onclick="on_subject_click('{info.subject} ','{title}')" を使用すると、同じ効果を得ることができます。前者の使用をお勧めします

  • onclick、r-click-change、 r-click-function。同じノードを再利用することはできません

  • 次のコードの効果はここでプレビューできます https://epaii.github.io/epii.js/demo/demo9.html

<div>
    <h1 id="">  </h1>
    
    <div></div>
    <br>
    <div></div>
    <br>
    <div>
        <div>名称<span></span>,
            年龄<span></span>
        </div>
    </div>
</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        title: "列表展示",
        info:{subject:"文章简介"},
        users:[
            {name:"张三",age:"12岁"},
            {name:"李四",age:"14岁"}
        ]
    });function on_subject_click(subject,title) {
        console.log(subject,title);

    }function on_item_click(name,age) {
        console.log(name,age);
    }</script>

5 カスタム ジャンプ イベント

  • throughepii.setClickToChangeFunction(f); カスタマイズ r- ネイティブ + Web アプリ開発では、通常、ロケーション ページを直接ジャンプする必要はありません。カスタムプロトコルを処理します。

epii.setClickToChangeFunction(function (url) {
        console.log(url);
    });

  • 次のコード効果はここでプレビューできます https://epaii.github.io/epii.js/demo/demo10.html

 //自定义r-click-change 处理事件, 在native+webapp开发中 一般需要自定义协议epii.setClickToChangeFunction(function (url) {
        console.log(url);
    });var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        title: "列表展示",

    });

6 リスト (基本)

  • epii r-list タグでこの dom ノードを指定すると、リスト ノード内の変数がリスト内の特定のデータ項目に自動的に切り替わります (次のコード)。エフェクトはここで確認できます プレビュー https://epaii.github.io/epii.js/demo/demo4.html

<div>
    <h1 id="">  </h1>
    <div>
        <div>名称<span></span>,年龄<span></span>
</div>
    </div>
</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        title: "列表展示",
        users:[
            {name:"张三",age:"12岁"},
            {name:"李四",age:"14岁"}
        ]
    });</script>

7 リスト (複数のテンプレート)

  • に複数のテンプレートがある場合リストは、r -display に基づいて、対応するテンプレートを自動的に選択します。次のコードの効果は、ここでプレビューできます https://epaii.github.io/epii.js/demo/demo5.html

<div>
    <h1 id="">  </h1>
    <div>
        <div>,年龄<span></span>
</div>
        <div>,年龄<span></span>
</div>
    </div>
</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        title: "列表展示",
        users:[
            {name:"张三",age:"12岁",item_type:1},
            {name:"李四",age:"14岁",item_type:2},
            {name:"张三1",age:"121岁",item_type:1},
            {name:"李四1",age:"141岁",item_type:2}
        ]
    });</script>

8 リスト (データの追加)

  • epii リストにデータを追加するには 2 つの方法があります

  • 方法 1、re-setData は、古いデータがある場合、リスト内のすべてのデータを再表示します。変更された場合は、このメソッドを使用します

  • 方法 2、 addData 、既存のデータは変更されず、データを追加します。古いデータに変更がない場合は、このメソッドを使用することをお勧めします

  • 次の効果コードはここでプレビューできます https://epaii.github.io/epii.js/demo/demo6.html

<div>
    <h1 id="">  </h1>
    <div>
        <div>,年龄<span></span>
</div>
        <div>,年龄<span></span>
</div>
    </div>
</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 body    myepii.setData({
        title: "列表展示",
        users:[
            {name:"张三",age:"12岁",item_type:1},
            {name:"李四",age:"14岁",item_type:2},
            {name:"张三1",age:"121岁",item_type:1},
            {name:"李四1",age:"141岁",item_type:2}
        ]
    });
    setTimeout(function () {//3秒后追加列表myepii.addData({ //追加已有数据,列表将被追加,其它类型直接覆盖title: "追加列表展示",
            users:[
                {name:"张三5",age:"12岁",item_type:1},
                {name:"李四6",age:"14岁",item_type:2},
                {name:"张三7",age:"121岁",item_type:1},
                {name:"李四8",age:"141岁",item_type:2}
            ]
        });

    },3000);</script>

 

9 列表(空数据)

通过 r-empty="1" 设置当数据为空,或者未设置时候列表的样式,以下代码效果可在此处预览 https://epaii.github.io/epii.js/demo/demo7.html

<div>
    <h1 id="">  </h1>
    <div>
        <div>,年龄<span></span>
</div>
        <div>,年龄<span></span>
</div>
        <div>
    </div>
</div>
<script>
    var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 body
    myepii.setData({
        title: "列表展示",
        users:[]
    });
    setTimeout(function () {//3秒后追加列表
        myepii.addData({ //追加已有数据,列表将别被加,其它类型直接覆盖
            title: "追加列表展示",
            users:[
                {name:"张三5",age:"12岁",item_type:1},
                {name:"李四6",age:"14岁",item_type:2},
                {name:"张三7",age:"121岁",item_type:1},
                {name:"李四8",age:"141岁",item_type:2}
            ]
        });

    },3000);

</script>
</div><p> </p><h1 id="数据获取-获取已设置的数据-getData-getDataValue两个方法">10 数据获取,获取已设置的数据,getData,getDataValue两个方法</h1>
  • 通过 epii 的 getData 方法 可以获取所有设置的数据

  • 通过 epii的 getDataValue 方法 可以快速获取已设置的数据,getDataValue 支持多参数,链条key

  • 如 myepii.getDataValue("title"); myepii.getDataValue("info","subject"); myepii.getDataValue("users",1,"age")

  • 以下代码效果可在此处预览 https://epaii.github.io/epii.js/demo/demo8.html

<div>
    <h1 id="">  </h1>
    <div>
        <div>,年龄<span></span>
</div>
        <div>,年龄<span></span>
</div>
    </div>
</div>
<script>var myepii = epii(document.getElementById("content"));//初始化引擎,需要制定dom节点 可以是 bodymyepii.setData({
        title: "获取数据",
        info:{subject:"标题"},
        users:[
            {name:"张三",age:"12岁",item_type:1},
            {name:"李四",age:"14岁",item_type:2},
            {name:"张三1",age:"121岁",item_type:1},
            {name:"李四1",age:"141岁",item_type:2}
        ]
    });
    console.log(myepii.getData());
    alert(myepii.getDataValue("title"));
    alert(myepii.getDataValue("info","subject"));
    alert(myepii.getDataValue("users",1,"age"));</script>

 

11 完整的demo,几乎涉及所有语法

demo案例源码:()

demo案例效果:(https://epaii.github.io/epii.js/index.html)

<div>
    <div>

    </div>
    <div>click_to_change</div>
    <div>

    </div>
    <div>{bgcolor};display: {display}" >

    </div>
    <div>

    </div>
    <img  alt="epii.js テンプレート エンジンの概要" >
    ![]({img_url})
    <input>
    <input>
    <div>

        <span></span>
        <span></span>
        <div>
            <div> 二级列表:</div>
            <div>
                <span></span>
                <span>
                    </span>
            </div>


        </div>
        <span>真的没有数据</span>

    </div>
</div>
<script>epii.setClickToChangeFunction(function (url) {
        alert(url);
    });function index(c, b) {//this  bind to uiviewconsole.log(this.innerHTML);
        console.log(c);
        console.log(b);
    }var data = {"img_url":"https://www.baidu.com/img/bd_logo1.png","display":"block","width":100,"height":200,"bgcolor":"red","name": "张三","sex": "男","isshow": 1,"show_name": "show/hide","map":{"show":"1","age":"map_age"},         "list": [{"name": "list_item_1", "moban": 1}, {"name": "list_item_2", "moban": 2, "age": 2}]
    };var myepii = epii(document.body);

    myepii.setData(data);//模拟数据变化setTimeout(function () {
        myepii.setData({//改变已有数据"hebei":"河北邯郸","name": "李四","sex": "女","map":{"show":"0","age":"map_age1"},"bgcolor":"blue","width":500,"height":50,
            isshow: 0});
        setTimeout(function () {
            myepii.addData({//追加已有数据,列表将被追加,其它类型直接覆盖"hebei":"河北石家庄",                 "display":"none","list": [
                    {"name": "list_item_3", "moban": 1},
                    {"name": "list_item_4", "moban": 2, "age": 4},
                    {"moban": 3,"age": 10,"wanju": [{"name": "list_item_list1", "moban": 1}, {"name": "list_item_list2", "moban": 2, a: 5}]
                    }]
            });
            console.log(myepii.getDataValue("name"));
            console.log(myepii.getDataValue("list",1,"age"));
            console.log(myepii.getDataValue("list",4,"wanju",1,"name"));
        },3000);




    }, 3000);</script>

 

以上がepii.js テンプレート エンジンの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptをインストールするにはどうすればよいですか?JavaScriptをインストールするにはどうすればよいですか?Apr 05, 2025 am 12:16 AM

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

クォーツでタスクが開始される前に通知を送信する方法は?クォーツでタスクが開始される前に通知を送信する方法は?Apr 04, 2025 pm 09:24 PM

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

JavaScriptでは、コンストラクターのプロトタイプチェーンで関数のパラメーターを取得する方法は?JavaScriptでは、コンストラクターのプロトタイプチェーンで関数のパラメーターを取得する方法は?Apr 04, 2025 pm 09:21 PM

JavaScriptプログラミング、プロトタイプチェーンの関数パラメーターの理解と操作のJavaScriptのプロトタイプチェーンの関数のパラメーターを取得する方法は、一般的で重要なタスクです...

WeChat MiniプログラムWebViewでVUE.JSダイナミックスタイルの変位が失敗した理由は何ですか?WeChat MiniプログラムWebViewでVUE.JSダイナミックスタイルの変位が失敗した理由は何ですか?Apr 04, 2025 pm 09:18 PM

WeChatアプレットWeb-ViewでVue.jsを使用する動的スタイルの変位障害がvue.jsを使用している理由の分析...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、