avalon 单页面顺序 (种子工程)之一 用requirejs引入avalon

这篇文章是写在公司项目完毕以后的,由于我个人不太会把没有实践过的东西写出来,实践是检验真理的唯一标准么,用的怎样,好不好用,在成熟实践过的项目上能表现出来。

我们公司一开始手艺选型的时刻是斟酌用angularjs的,然则公司高层为了市场容量 说最好需要支撑下 ie , 但是angularjs 对ie8的支撑都不是很好,所以末了使用了能够兼容一切浏览器的avalon, 正如司徒大大本身说的,国内的环境就是如许,ie 照样有大批的市场份额的。 (如今微软终究痛定思痛 决议摒弃了ie , 不支撑ie的平安更新,对我们前端来讲,真的是严重利好啊)

言归正传,这篇文章的目标就是把怎样用 avalon 构建一个单页面顺序 引见以下, 是对本身的一个总结,也喜好对人人有肯定的自创作用,写的不好不对的处所愿望人人多批评批评, 感谢。

竖立项目构造

这个我参考了司徒正美写的构造目次。 js 文件夹是安排一切的js 援用类库的,无论是其他类库照样本身公司写的类库也好,我把本身写的类库放在了 js/common文件夹下面; modules 是安排差别的营业模块的,如图,我竖立了一个 sub1营业,另有一个 sub2营业, 背面我们就依据这两个子营业来举行开辟解说; 别的css,fonts,images 目次就不必讲人人也都知道了;然后main.js为进口文件,与index.html 主页面放在根目次下面

《avalon 单页面顺序 (种子工程)之一 用requirejs引入avalon》

编写index主页

主页很简朴,新建一个通例html页面,援用require.js, 定义进口main.js位置。个中ms-controller=”root”就是avalon的一个controller, 一个model 对应一个controller , 划定一个作用域,这个跟angularjs差不多,也有mvc的头脑. 一个页面能够定义多个controller

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>avalon工程</title>
    <script src="js/require/require.js" data-main="main"></script>
</head>
<body ms-controller="root">
{{name}}
</body>
</html>

下面我们再来看看main.js文件

第一块内容设置了requirejs ,设置了avalon的援用位置
第二块内容经由过程require引入avalon
requirejs的进修请参考官网 http://requirejs.org/
然后定义了一个 avalon的model, 这个实在就是一个对象,内里能够封装html controller中需要用到的数据和要领, 默许$id属性是必需要的,这个id 会找到html页面的对应的controller, 如前面我们定义的controller叫 root. 末了又添加了一个属性name, html页面对应 {{name}}


require.config({//第一块,设置
    baseUrl: '',
    paths: {
        avalon: ["js/avalon/avalon"]//必需修正源码,禁用自带加载器,或直接删提AMD加载器模块
    }
});


require(['avalon'],function(avalon){
    avalon.log("引入avalon");

    var model = avalon.define({
        $id: "root",
        name: "tangolivesky"
    })
});

实行效果以下

这就是一个典范的MVVM

《avalon 单页面顺序 (种子工程)之一 用requirejs引入avalon》

这一小节简朴引见下avalon 单页面顺序的工程构建,下一节细致引见下按需加载和路由体系

    原文作者:十年
    原文地址: https://segmentfault.com/a/1190000004345372
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞