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

其实框架就是让你使用起来简单些

关于路由其实用一个轻便的框架就可以了

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

路由就是根据url后面的路径不同变换代码

前端路由由于其特殊性 最常见表述为这样的形式

#!/contact/me
<ul><li><a href="./index">index</a></li><li><a href="#whoop">#whoop</a></li><li><a href="./about">/about</a></li><li><a href="./contact">/contact</a></li><li><a href="./contact/me">/contact/me</a></li><li><a href="./not-found?foo=bar">/not-found</a></li>
</ul>

然后我们直接上page.js使用代码

<script>page.base('');page('/', index);page('/index', index);page('/about', about);page('/contact', contact);page('/contact/:contactName', contact);page({hashbang:true});function index() {}function about() {}function contact(ctx) {}
</script>

page.js 可以使你使用hashbang

现在我们开始写组件

avalon2 组件写法
https://segmentfault.com/a/1190000004949412

定义组件

avalon.component('ms-approute', {template: '<div class="zl-view"><slot name="page"></slot></div>',defaults: {},soleSlot: 'page'
});

使用组件

<template ms-widget="[{is:'ms-approute'},@approuteconfig]"><div slot="page" class="zl-page" data-route="index" >index</div><div slot="page" class="zl-page" data-route="about">about</div><div slot="page" class="zl-page" data-route="contact">contact</div>
</template>

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);
});

使用avalon2 去构建一个 app-route相关推荐

  1. 程序员,如何逐步去构建一个大型网站系统,面试必问!!!

    往往程序员在面试的时候,公司的面试任职资格上,总有一个大型系统网站的开发经验,我们先来看看几张面试招聘信息截图....... 大型网站定义 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技 ...

  2. 怎样去构建一个优质的Docker容器镜像

    抛砖引玉 先说结论 以不变应万变 善用 cache, 使用一个相对固定的 build 环境 构建 自己的基础镜像 洁身自好 保持 context 干净: .dockerignore 镜像环境清理 你需 ...

  3. 【Android必备】构建一个App小部件(24)【代码块异常】

    原 概要 应用小部件是微型应用程序视图,可嵌入其他应用程序(例如主屏幕)并接收定期更新.这些视图在用户界面中称为小部件,您可以使用App Widget提供程序发布视图.一个能够容纳其他App Widg ...

  4. xampp去运行php文件_从0开始构建一个属于你自己的PHP框架

    如何构建一个自己的PHP框架 为什么我们要去构建一个自己的PHP框架?可能绝大多数的人都会说"市面上已经那么多的框架了,还造什么轮子?".我的观点"造轮子不是目的,造轮子 ...

  5. android tv record,Android TV开发总结(一)构建一个TV app前要知道的事儿

    前言:近年来,智能电视的发展如火如荼,Googel 也在大力推进TV及穿带设备的发展,在互联网的风口,是猪也会飞,这句话并不是没有道理的.传统电视机厂商,基本都转型致力于智能电视的相关业务.处理电视硬 ...

  6. 使用 Microsoft Teams Toolkit for Visual Studio 高效构建一个指示板

    Teams Toolkit for Visual Studio 现在可用了,这对于.NET开发者来说真是一个好消息. 本篇我们会介绍使用 ASP.NET Core 去构建一个 Teams 选项卡,并展 ...

  7. Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑

    原文:Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必 ...

  8. [译] 用 Redis 和 Python 构建一个共享单车的 app

    原文地址:Build a bikesharing app with Redis and Python 原文作者:Tague Griffith 译文出自:掘金翻译计划 本文永久链接:github.com ...

  9. android tv 云播放器,Android TV开发总结(六)构建一个TV app的直播节目实例

    近年来,Android TV的迅速发展,传统的有线电视受到较大的冲击,在TV上用户同样也可以看到各个有线电视的直播频道,相对于手机,这种直播节目,体验效果更佳,尤其是一样赛事节目,大屏幕看得才够痛快, ...

  10. 使用WebGL去实现一个拖拽式UI代码生成App

    前言 ​ UI(User Interface),即用户界面,是软件和用户之间进行交互和信息交换的媒介,实现信息的内部形式与人类可接受形式间的转换.UI开发一般需要经过UI设计.UI实现两个过程.UI设 ...

最新文章

  1. android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码
  2. 架空输电线路运行规程_[精品课程]绝缘子及其设计架空输电线路设计
  3. 协程、asyncio、异步编程
  4. git钩子放服务器_如何在GitLab中添加服务器端的预接收钩子?
  5. 检查用户是否有权限从ABAP里调用C kernel functions
  6. pythonanywhere使用:进入虚拟机及修改django项目的css样式
  7. CentOS配置网易163 yum源
  8. eventfd(三)
  9. Python中的石头、剪刀、布游戏
  10. 柔性太阳能电池pdf_CIS太阳能电池.pdf
  11. 安卓应用改了图标无效,是缓存的问题
  12. Vivado2018的使用
  13. linux 手机遥控器,哪一个最适用?五款常用手机万能遥控器对比体验
  14. 最小二乘支持向量机(LSSVM)推导
  15. ABB伺服驱动调试(四)
  16. 执教《送给盲婆婆的蝈蝈》有感
  17. 20选1,来挑一款最棒的JSON编辑器吧,用好工具,可提前60分钟下班
  18. easyexcel导出
  19. 感悟-关于爱情(一年半,最后一次告别)
  20. Android应用开发性能优化完全分析,移动应用开发课程报告

热门文章

  1. 批量给hive的表加分区
  2. Delphi中用Sender参数实现代码重用
  3. poj 2606 Rabbit hunt 解题报告
  4. 常用JS验证函数总结
  5. mysql关键字了解
  6. java连接数据库(sqlserver和mysql)
  7. 图形界面组件实验的一点总结
  8. Node.js log4js日志记录
  9. Windows 2008 Domain Controller
  10. ASP连接sql server实例解析