美文网首页
单页App开发(重要的JS语法)

单页App开发(重要的JS语法)

作者: 程序员有话说 | 来源:发表于2016-11-15 00:26 被阅读0次

一、单页应用历史

什么是单页应用?
  • 所谓单页应用,简称SPA,指的是在一个页面上集成多种功能,甚至整个系统就只有一个页面,所有的业务功能都是它的子模块,通过特定的方式挂接到主界面上。

  • 传统单页应用是AJAX技术的进一步升华,把AJAX的无刷新机制发挥到极致,因此能造就与桌面程序媲美的流畅用户体验。

  • 随着HTML5规范的定制及推广,浏览器新技术的支持趋于完善,websocket已经逐渐成为web单页应用更加适宜的技术,当然低版本浏览器也有对应的解决方案。

早期传统单页应用有哪些?
  • 1.flash技术相关页面:

    QQ空间,三国杀在线版本等

  • 2.java程序

    web版java办公套件等

  • 3.javascript程序

    简单的js计算器,小游戏等

传统网页和单页应用的区别
传统网页和单页应用的区别.png

1.传统网站很多超链接组成 2.服务器端出来逻辑
2.单页应用,客户端性能提高,用户追求体验

二、重要的JS语法

WEB单页应用的重要语法基础
  • 变量作用域
  • 变量作用域链
  • 闭包
  • 变量提升
  • 自执行函数
  • 模块模式
1. 变量作用域
  • 变量的有效范围或者作用范围称为变量作用域。

  • JS中变量作用域分为两大类:局部变量和全局变量

  • 局部变量:(全身麻醉)

    • 在函数内部使用var声明的变量就是局部变量,尽在函数内部有效
  • 全局变量:(局部麻醉)

  • 在函数外部使用var声明的变量就是全局变量,在函数内外有效

变量作用域.png
<!doctype html>
<html>
    <head>
        <title>变量作用域</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <script>
            //全局环境
            var globalVal = '全局变量';
            
            function myFunc(){
            
                //调用全局变量
                console.log(globalVal);
                
                var localVal = '局部变量';
                //调用局部变量
                console.log(localVal);
            }
            
            //调用全局变量
            console.log(globalVal);   // 在全局环境中声明变量,调用全局变量
            
            //调用局部变量
            myFunc();
            console.log(localVal);   //在函数外是不能调用函数内声明的变量的
            
            //调用函数
            myFunc();//函数也在全局环境中,所以在函数中调用全局变量也是可以使用的
            
        </script>
    </body>
</html>
2. 变量作用域链
  • 变量在当前环境向当前环境内部的函数内部传递,这种方式就是作用域链
变量作用域链.png
<!doctype html>
<html>
    <head>
        <title>变量作用域链条</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <script>
            //全局环境,声明变量
            var zhuxi = '习大大';
            
            function liaoning(){
                
                function tieling(){
                
                    function yinzhou(){
                    
                        function longshan(){
                            //主席说话好使不!
                            console.log(zhuxi);
                        }
                        //调用龙山乡
                        longshan();
                    }
                    //调用银州区
                    yinzhou();
                }
                //调用铁岭市函数
                tieling();
            }
            //调用辽宁省函数
            liaoning();
        </script>
    </body>
</html>
3. 闭包
  • 简单的说,闭包就是将一个局部变量的向外层环境传递的特殊实现方式。借以
    突破局部变量的限制。 在JS程序中闭包非常常见。
闭包.png
<!doctype html>
<html>
    <head>
        <title>闭包</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <script>
            function bibao(){
                var xifu = '志玲';
                
                return function(){
                    //借助函数返回局部变量
                    return xifu;
                }
            
            }
            
            var result = bibao();
            
            var wife=result();//调用函数
            
            console.log(wife);
        </script>
    </body>
</html>
4. 变量提升
  • 主要是指在后面声明的代码中的声明部分,可以在执行时提升到最开始的位置。
变量提升.png
<!doctype html>
<html>
    <head>
        <title>变量提升</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <script>
            var angel = '丘比特';

            function myfunc(){
  
                alert(angel);//结果为undefined
                
                var angel = '林妹妹';//此处使用var声明,会提升变量到使用之前所以结果undefined
            }

            myfunc();
        </script>
    </body>
</html>
5. 自执行函数
  • 自动执行而不需要正常调用的函数就是自执行函数,自执行函数是JS中匿名函数的特殊使用方式。
自执行函数.png
注意:自执行函数并不是没有调用,而是在声明之后调用(蓝色字部分)
<!doctype html>
<html>
    <head>
        <title>自执行函数</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <script>
            (function (){

                alert('各位兄弟,大学生活好吗!');

            })()

        </script>
    </body>
</html>
6. 模块模式
  • 自执行函数的应用,主要用于较多模块划分的程序开发当中。
模块模式 .png
注:两种函数结果一样,但是模块函数内存中不会保存函数,仅保存结果变量
<!doctype html>
<html>
    <head>
        <title>模块函数方式</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <script>
      
            var module=(function(){
                //局部变量
                var add=function(){};
                var del=function(){};
                var modi=function(){};
                var find=function(){};
                
                //返回模块的公开方法和属性
                return {
                    add:add,
                    del:del,
                    modi:modi,
                    find:find,
                };
                
            })()
            
            console.log(module);//console.log(module.add);模块化开发

        </script>
    </body>
</html>

三、单页应用架构

1. web单页应用整体架构
web单页应用整体架构.png
1. 文件结构
文件/文件夹 功能
app.html 主页面
js 所有JS文件夹
css 所有css文件夹
2. JS文件结构
JS文件结构
3. CSS文件结构
CSS文件结构.png
4. shell在架构中的作用

shell是单页应用的主控制器,是框架中必须的。

  • 主要负责的内容:
    1.部署单页应用整体形状和结构(不包含具体功能的样式,类似框架)
    2.初始化所有功能模块。
    3.管理应用的cookie或者URI处理
    3.该模块被根文件调用
5. 功能模块在架构中的作用

功能模块是单页应用中每个独立功能的集合。(不包含业务逻辑)

  • 功能模块主要负责:
    1.部署当前功能模块的html渲染和生成(css已经预选加载,不再此处处理)
    2.为当前模块的元素添加事件,绑定事件处理方式
    3.该模块被shell模块调用
6. Model模块在架构中的作用
  • Model是为当前单页应用所有数据提供模型和操作的代码集合。
  • 主要负责的内容:
    1.构建和设计所有功能模块使用的业务逻辑对象
    例如:用户对象:添加用户,删除用户,修改用户等
    2.调用Data实现Model中的业务逻辑操作
    3.该模块功能被shell中的指定功能模块调用
7.Data模块在架构中的作用

Data是提供前端和后端进行数据通讯的必备模块

  • 主要负责的内容:
    1.获取和设置通讯使用的功能对象和方法
    2.该模块功能被Model调用

相关文章

  • 单页App开发(重要的JS语法)

    一、单页应用历史 什么是单页应用? 所谓单页应用,简称SPA,指的是在一个页面上集成多种功能,甚至整个系统就只有一...

  • 20160921、20160928直播课 单页APP 学习笔记

    20160921、20160928直播课 单页APP 学习笔记 WEB单页应用的重要语法基础 变量作用域变量作用域...

  • Learn VueJs 2 Vue-router

    使用 Vue.js 和 vue-router 创建单页应用非常的简单,使用 Vue.js 开发,整个应用已经被拆分...

  • Vue + Vue-Router结合开发

    在实际开发中,用 Vue.js + vue-router 创建单页应用,是非常简单的。 在使用 Vue.js 时,...

  • Nuxt项目搭建到Nuxt项目部署

    a.为什么? Vue.js原来是开发SPA(单页应用)的,但很多人想用Vue开发多页应用(有利于SEO操作),并在...

  • uni-app入门详解

    1 uni-app学习 1.1 什么是uni-app uni-app是一个使用Vue.js语法来开发所有前端应用的...

  • 第一章 React 介绍

    本章内容 多页应用开发模式的缺点 单页应用开发模式的优点 单页应用开发模式的主要问题 React 如何解决单页应用...

  • swift-wkwebview单页App下载zip文件解压展示h

    前言 实现功能,单页app下载zip压缩包,其中包含html,css,js等文件,加载html展示.此次没做下载功...

  • 单页应用与多页应用

    一、单页应用 利用Vue开发的应用是单页面应用,在url变化时,js会感知到,然后动态地将当前页面上的内容清除...

  • 前端路由与Vue Router

    Vue Router 是Vue.js的官方插件,用来快速实现单页应用 单页应用 SPA(Single Page A...

网友评论

      本文标题:单页App开发(重要的JS语法)

      本文链接:https://www.haomeiwen.com/subject/lhjkpttx.html