zoukankan      html  css  js  c++  java
  • VisualStudio环境下的Web前端开发经验总结(css,javascript)

    vs是我最熟悉的开发环境,但使用做web前端开发时时,碰到一些问题:

    1.一个文件几万行代码,如何能快速的找到某个模块?

    2.js代码如何使用#region方式折叠?

    3.js代码的intellisence有些情况下会失效,痛苦。

    4.js选择何种“类”定义,有效的实现代码模块化

    5.如何高效的写css.

    ---------------------------------------------------------------

    完美的解决方案是使用:TypeScript,若使用ts,不用往下看了。

    ---------------------------------------------------------------

    经过摸索,总结出如下的经验。(注:vs 的版本是2012)

    一、安装vs插件,解决问题1、2

    插件1:Web Essentials,主要的好处是支持js的代码折叠(#region...#endregion)。

    详情参见:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解

    插件2:jsparser,可将js代码中的function组织成目录,便于查找。

    安装好该插件后,需要点击菜单项:视图>其它窗口>JavaScript Parser,才能出来相应的窗口。

    插件安装方法:打开vs的菜单项:工具>扩展和更新..,在“联机”中搜索相关插件,安装。

    二、IntelliSence的增强

     单兵作战时,把所有js代码写在一个文件里比较省事,发布起来方便,智能提示也方便。

    但有些情况下,智能提示会失效,如:

    //代码1
    var foo=function(x){
      //x 的类型未知,智能提示失效
    }

    解决方案是,把x做成以function实现的类的实例,如下

    function MyClass(...){}
    
    //x是MyClass的实例
    function foo(x){
      x=new MyClass(x);//这里是关键,让MyClass直接返回x,此时x的值不变,且类型已强制为MyClass,智能提示生效
      x.//这里已经有智能提示了
    }
    
    //测试代码
    var a=new MyClass(...);
    foo(a)
    为了支持上述的智能提示增强,可按如下方法改造MyClass
    //给Function增加一个函数,用于增强智能提示
    Function.prototype.isDirectReturn = function (arg) {
        return arg.length == 1 && arg[0].constructor == this;
    }
    
    
    fucntion MyClass(...){
        //当输入的参数只有一个,且为MyClass的实例时,直接回返(用于智能提示)
        if( MyClass.isDirectReturn(arguments) ) return arguments[0];    
      
      ...
    }
    
    

    三、高效的写css,可用less。

    详情参见:LESS CSS 框架简介

    四、js的类定义、代码模块化、层次化,另起一篇:javascript类定义的模板与代码层次化

  • 相关阅读:
    括号序列
    秘密信息
    大奖赛
    订单
    摆花
    利用spring自己实现观察者模式
    Spring操作mongo排序,限制查询记录数
    Hbse的读写过程
    使用aop记录数据库操作的执行时间
    分享一个关于jackson的Json工具类
  • 原文地址:https://www.cnblogs.com/erentec/p/4324313.html
Copyright © 2011-2022 走看看