avalon フロントエンドプロジェクトでの解析の使用

php中世界最好的语言
リリース: 2018-05-24 10:52:46
オリジナル
2546 人が閲覧しました

今回は、avalon フロントエンド プロジェクトの使用に関する分析をお届けします。 avalon フロントエンド プロジェクトで使用される 注意事項 について、実際の事例を見てみましょう。

1 小さなデータループの例

avalon フロントエンドプロジェクトでの解析の使用

nbsp;html>


  <meta>
  <meta>
  <meta>
  <script></script>


  
ログイン後にコピー
                                                                                                                                                                       
序号项目名称开始时间合同金额支付金额支付比例
{{$index}}{{el.pro_name}}{{el.crt_time}}{{el.contract_money|number(2)}}{{el.pay_money|number(2)}}           0                    {{el.pay_money / el.contract_money *100|number(2)}}%         
<script> vm = avalon.define({ $id: &#39;test&#39;, data: {} }); //这里是请求服务器 // $.ajax({ // url:&#39;../json/avalon_for.json&#39;, // type:&#39;get&#39;, // dataType:&#39;json&#39;, // success: function (ajax) { // vm.data=ajax.data; // // console.log(vm.data) // } // }); vm.data = [{ "pro_name": "沙湖,南湖水环境提升规划方案", "crt_time": "2017-10-27", "contract_money": "20000", "pay_money": "0" }, { "pro_name": "保利升官渡项目新建地下车库通道方案论", "crt_time": "2017-10-27", "contract_money": "6000", "pay_money": "555" }, { "pro_name": "邬家巷(鹦鹉大道-南城巷)道路排水修建规划", "crt_time": "2017-10-28", "contract_money": "7777", "pay_money": "3333" } ] </script>

2 vmは相互に値を取得できます

avalon フロントエンドプロジェクトでの解析の使用

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


    <p>{{@a}}</p>
    <p>
        {{@a}}
        <span>{{@b}}</span>
    </p>


<script>
    var vm = avalon.define({
        $id: &#39;wrap&#39;,
        a: &#39;123&#39;
    });
    var def = avalon.define({
        $id: "wrap2",
        a: "大家好",
        b: vm.a   //获取第一个Model里的属性值
    });
</script>
ログイン後にコピー

3 組み込みコマンド

  1. $id、vmの名前

  2. $ watch、リスニング関数の追加に使用されます

  3. $fire、リスニング関数のトリガーに使用されます

  4. $events、リスニング関数の保存に使用されます

  5. $model、純粋な JS オブジェクト

  6. $ を返します要素、2.0 の新機能、ms-controller、ms- important を使用して VM のスコープを指定すると、対応する要素ノードがこの属性に配置されます。

  7. $computed、2.2.1 の新機能、以前は計算属性を一元的に定義する

4 計算属性

4.1 get case

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


  <p>{{@fullName}}</p>


<script>
  var vm = avalon.define({
      $id: &#39;test&#39;,
      firstName: &#39;司徒&#39;,
      lastName: &#39;正美&#39;,
      $computed: {
          //fullName依赖于firstName与lastName
          fullName: function(){
              return this.firstName+&#39; &#39;+this.lastName
          },
          //xxx只依赖于firstNaem
          xxx: function(){
              return this.firstName+&#39;!!&#39;
          }
      }
  })
  setTimeout(() => {
    vm.lastName = &#39;西瓜&#39;;
  },3000);
  </script>
ログイン後にコピー

4.2 set case

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


  <p>{{@firstName}}</p>
  <p>{{@lastName}}</p>


<script>
  var vm = avalon.define({
      $id: &#39;test&#39;,
      firstName: &#39;杀猪&#39;,
      lastName: &#39;牛刀&#39;,
      $computed: {
          //fullName依赖于firstName与lastName
          fullName: {
              get: function(){
                  return this.firstName+&#39; &#39;+this.lastName
              },
              set: function(val){
                  var arr = val.split(&#39; &#39;)
                  this.firstName = arr[0]
                  this.lastName = arr[1]
              }
          }
      }
  })
  setTimeout(() => {
    vm.fullName = "你有 病吧"
  }, 3000);
  </script>
ログイン後にコピー

4.3 計算属性のあいまい検索case

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


  <p>
    {{@test1}}
    </p>
ログイン後にコピー
                                                  <script> avalon.component(&#39;ms-autocomplete&#39;, { template: &#39;<p><input type="text" ms-duplex-string="@search" />&#39; + &#39;<ul><li ms-for="($idx,opt) in @aaa">&#39; + &#39;{{opt.community_name}}&#39;, defaults: { search: &#39;&#39;, communities: [], onReady:function(e){ e.vmodel.$watch(&#39;search&#39;, function(v){ avalon.log(&#39;current search word is &#39;+ v) }) }, $computed: { aaa: { get: function() { var ret = []; for (var i = 0; i < this.communities.length; i++) { if ((this.communities[i].community_name.indexOf(this.search) > -1)) { ret[ret.length] = this.communities[i]; if(ret.length === 5){ break } } } return ret; } } } } }); communities = [{ community_id: 3, community_name: &#39;This&#39;, }, { community_id: 5, community_name: &#39;isnot&#39;, }, { community_id: 8, community_name: &#39;agood&#39;, }, { community_id: 10, community_name: &#39;example&#39;, }, { community_id: 22, community_name: &#39;for&#39;, }, { community_id: 23, community_name: &#39;such&#39;, }, { community_id: 43, community_name: &#39;test&#39;, }, { community_id: 45, community_name: &#39;thank&#39;, }, { community_id: 47, community_name: &#39;you&#39;, }, { community_id: 50, community_name: &#39;verymuch&#39;, }, { community_id: 51, community_name: &#39;youre&#39;, }, { community_id: 53, community_name: &#39;welcome&#39;, }, { community_id: 54, community_name: &#39;too&#39;, }, { community_id: 55, community_name: &#39;notsogood&#39;, }, { community_id: 56, community_name: &#39;cheerful&#39;, }]; var vm = avalon.define({ $id: &#39;avalon&#39;, test1: &#39;test1&#39;, communities: communities, }); </script>

5 データ学習vueをオブジェクトデータに入れるが、vueの方が断然便利

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


  <p>{{@data.firstName}}</p>
  <p>{{@data.lastName}}</p>


<script>
  var vm = avalon.define({
      $id: &#39;test&#39;,
      data:{
        firstName: &#39;杀猪&#39;,
        lastName:&#39;牛刀&#39;,
      },
      methods:{
          
      }
      
  })
  setTimeout(() => {
    vm.data.firstName = &#39;哈哈&#39;
  }, 3000);
  </script>
ログイン後にコピー

6 操作配列メソッド

  1. pushArray(el) は、配列を渡す必要があり、配列内のすべての要素を現在の配列の末尾に追加します。

  2. remove(el) は、等しい比較を通じて要素を渡し、削除する必要があります。

  3. removeAt(index) は数値を渡す必要があり、対応する位置にある要素を削除します。

  4. removeAll(arrayOrFunction) には 3 つの用途があります。関数の場合は、比較後に真の値を取得する要素をフィルターします。
    配列の場合は、元の配列と等しい配列内のすべての要素を削除します。 ; パラメータがない場合はすべてクリアされます。

  5. clear() は、removeAll() の 3 番目のメソッドに相当し、配列のすべての要素をクリアします。ビューを同期する必要があるため、要素は vm.array.length
    = 0 のメソッドではクリアできません。

  6. ensure(el)、この要素が配列に存在しない場合にのみ追加します。

  7. set(index, el)、単純な配列要素の配列はその要素を変換しないため、特定のインデックス位置で要素を更新するために使用されます

  8. toJSON()、配列の $ を取得するために使用されますモデル、2.2.2 新たに追加されたメソッド

6.1 配列の操作例pushArray (重複追加なし)

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>



<script>
    var vm = avalon.define({
        $id: &#39;xxx&#39;,
        array: [1, 2, 3]
    })
    vm.array.push(4, 5, 6)
    vm.array.pushArray([4, 5, 6]) //这个比push方法好用
    vm.array.clear()
    vm.array.ensure(3) //[3]
    vm.array.ensure(3) //[3]
    console.log(vm.array);
    vm.array.ensure(4) //[3,4]
    console.log(vm.array);
</script>
ログイン後にコピー

6.2 Remove()の配列操作例delete

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


    <p>
        {{el}}<button>点我删除该行</button>
    </p>
    <script>
    avalon.define({
        $id: &#39;test&#39;,
        arr: [1,2,3,4,5,6]
    })
    </script>

ログイン後にコピー

7 表示非表示に局非表示が含まれる場合

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


  <script>
  var vm = avalon.define({
    $id: "test",
    aaa: "这是被隐藏的内容",
    toggle: false
  })
  </script>
  <p><button>点我</button></p>
  <p>{{@aaa}}</p>
  <p>{{@aaa}}</p>
  
ログイン後にコピー

9 arrとobjのforループ

nbsp;html>


    <meta>
    <meta>
    <meta>
    <script></script>
    <title>Document</title>


  
ログイン後にコピー
        
  • {{el}}
  •   
  
        
  • {{key}}--{{val}}
  •   
<script> var vm = avalon.define({ $id: "test", data:{ array:[1,2,3,4], obj:{a:1,b:2,c:3} } }) </script>

10イベント

  • アニメーション終了、

  • ブラー、フォーカス変更、入力、

  • クリック、dblclick、、keydown、keypress、keyup、

  • マウスダウン、マウスエンター、マウスリーブ、mousemove、mouseout、

  • mouseover、mouseup、scroll、submit

略語: click-1="@fn(el)" :click-2="@fn(el)"
私はあなたを信じていますこの記事の事例を読んでその方法をマスターした方は、さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

Chart.js 軽量グラフ作成ライブラリのユースケース分析

Chart.js 軽量 HTML5 グラフ描画ツール ライブラリの使用手順の詳細な説明

                
                        
  • {{el.community_name}}
  •                 
            
                            

以上がavalon フロントエンドプロジェクトでの解析の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!