国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用avalon2 去構建一個 app-route

Wildcard / 3324人閱讀

摘要:的相關文章其實框架就是讓你使用起來簡單些關于路由其實用一個輕便的框架就可以了路由就是根據后面的路徑不同變換代碼前端路由由于其特殊性最常見表述為這樣的形式然后我們直接上使用代碼可以使你使用現在我們開始寫組件組件寫法定義組件使用組件

avalon2 的相關文章
https://segmentfault.com/blog/jslouvre

其實框架就是讓你使用起來簡單些

關于路由其實用一個輕便的框架就可以了

https://github.com/visionmedia/page.js

路由就是根據url后面的路徑不同變換代碼

前端路由由于其特殊性 最常見表述為這樣的形式

#!/contact/me

然后我們直接上page.js使用代碼

page.js 可以使你使用hashbang

現在我們開始寫組件

avalon2 組件寫法
https://segmentfault.com/a/1190000004949412

定義組件

avalon.component("ms-approute", {
    template: "
", defaults: { }, soleSlot: "page" });

使用組件

js

 function deepFind(obj, path) {
    var paths = path.split(".")
            , current = obj
            , i;

    for (i = 0; i < paths.length; ++i) {
        if (current[paths[i]] == undefined) {
            return undefined;
        } else {
            current = current[paths[i]];
        }
    }
    return current;
}

var Approute = function (options) {
    var lastRoute = "";
    var lastRouteEle = {};
    var ele = {};

    function check(route) {
        var length = ele.target.children.length;
        for (var i = 0; i < length; i++) {
            (function (index) {
                var page = ele.target.children.item(index);
                if (page.dataset.route == route) {
                    lastRoute = route;
                    lastRouteEle = page;
                    page.setAttribute("selected", "");
                }
            })(i);
        }
    }

    function emit(newValue, oldValue) {
        lastRouteEle.removeAttribute("selected");
        check(newValue);
    }

    return {
        emit: emit,
        config: {
            onInit: function (a) {
                console.log("onInit!!");
            },
            onReady: function (a) {
                console.log("onReady!!");
                var self = this;
                ele = a;
                var route = deepFind(self, options.path);
                check(route);
            },
            onViewChange: function (a) {
                console.log("onViewChange!!");
            },
            onDispose: function (a) {
                console.log("onDispose!!")
            }
        }
    }
};

var approute = new Approute({
    path: "route"
});

var con = function () {
    return {
        $id: "test",
        route: "index",
        approuteconfig: approute.config
    }
};

var vm = avalon.define(con());

vm.$watch("route", function (newValue, oldValue) {
    approute.emit(newValue, oldValue);
});

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86298.html

相關文章

  • 【CuteJavaScript】Angular6入門項目(1.構建項目和創建路由)

    摘要:啟動服務,并打開新窗口可簡寫創建新組件可簡寫創建新服務創建路由模塊其他另外還有很多的命令提供,詳細可以查閱官方文檔命令。引入路由模塊導出路由模塊的指令這里需要添加一個數組,并傳入,導出讓路由器的相關指令可以在中的組件中使用。 本文目錄 一、項目起步 二、編寫路由組件 三、編寫頁面組件 1.編寫單一組件 2.模擬數據 3.編寫主從組件 四、編寫服務 1.為什么需要服務 2....

    bergwhite 評論0 收藏0
  • 發布基于 Avalon2 的 UI 組件庫與 SPA 腳手架

    摘要:使用前端框架開發信息管理系統有三年了,最近半年花了些心血將這三年的積累凝聚起來,誕生了兩個開源項目和。,中文名安逸,是基于的端組件庫。有用于數據展示的組件用于數據提交的組件用于消息提示的與組件組件和用戶輸入組件等,并且還在不斷完善中。 使用 Avalon 前端框架開發信息管理系統有三年了,最近半年花了些心血將這三年的積累凝聚起來,誕生了兩個開源項目 ms-bus 和 ane。 ms-b...

    Sike 評論0 收藏0
  • Angular 路由

    摘要:要做到這一點,有三個必不可少的步驟,分別是創建根路由模塊定義路由配置添加指令標簽。下面的代碼以路由配置為參數,通過調用方法來創建根路由模塊,并將其導入到應用的根模塊中。 概述 路由所要解決的核心問題就是通過建立URL和頁面的對應關系,使得不同的頁面可以用不同的URL來表示。 Angular路由的核心工作流程圖 showImg(https://segmentfault.com/img/b...

    Olivia 評論0 收藏0
  • avalon2初體驗

    摘要:最近因項目進展需求對現有項目進行重構,由于目前項目還未實現真正意義上的前后端分離后續會循序重構實現,在時間緊產品循序迭代的情況下,想一次性實現前后端分離精力實在有限主要是前端開發人力不足。 最近因項目進展需求對現有項目進行重構,由于目前項目還未實現真正意義上的前后端分離(后續會循序重構實現),在時間緊產品循序迭代的情況下,想一次性實現前后端分離精力實在有限(主要是前端開發人力不足)。所...

    youkede 評論0 收藏0

發表評論

0條評論

Wildcard

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<