Ectx

Ectx 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

Ectx 赞了回答 · 2020-01-28

解决--save-dev 与 --save区别

啊 ~你们在说什么 一大堆烂糟的,如果你是前端人员,项目在浏览器运行的,无所谓开发依赖还是生产依赖,只是习惯而已最终都会打包到一起的,如果你要发npm包,那就要区分下,因为你的包在别人用的时候要找里面的依赖会通过你的pack.json 去找你的的依赖,他在安装你的包同时,就把生产依赖的包一块安装了 ,you know?

关注 24 回答 7

Ectx 提出了问题 · 2018-11-12

angularjs 如何缓存整个controller

主要是想让页面切换时不会重新渲染,显示之前打开的窗口。

尝试过用directive把当前controller所在的dom保存下来,在切换页面的时候渲染回来。
不过切换时上一个controller还是会触发$scope的销毁事件,双向绑定就失效了

关注 1 回答 0

Ectx 赞了回答 · 2018-06-23

我好奇在用vue时,使用webpack管理项目时,同一模块会被不同文件(import)导入,这样不会重复加载吗?

不会,如果你看过打包过之后的文件的话,不仅不会重复加载两边,甚至第二遍读的是第一遍执行结果的缓存。

简单举个例子可以验证:

// timer.js
export const timer = new Date()
//a.js
import { timer } from './time'
console.log(timer)
// index.js
import './a'
import { timer } from './time'
console.log(timer)

如果两次引入 timer 重复加载的话,index.js 的打包结果两次的 log 结果是不同的,但事实上两次的结果是相同的。

下面是 webpack 打包结果的入口函数,会对所有模块通过 id 进行标注,并且加载之后缓存

/******/     var installedModules = {};
/******/
/******/     // The require function
/******/     function __webpack_require__(moduleId) {
/******/
/******/         // 通过 id 缓存模块,如果之前已经通过 __webpack__require__ 加载过,就直接读了缓存
/******/         if(installedModules[moduleId]) {
/******/             return installedModules[moduleId].exports;
/******/         }
            }

关注 5 回答 4

Ectx 提出了问题 · 2018-06-20

vue-cli使用@绝对路径import引入的关键字 在vscode里没有语法提示

vue-cli使用@绝对路径import引入的关键字 在vscode里没有语法提示,使用相对路径就有:

绝对路径引入关键字
相对路径引入关键字

两个编译运行都没问题,如何让vscode识别webpack alias定义的绝对路径?

关注 3 回答 1

Ectx 赞了回答 · 2018-06-20

angularjs ocLazyLoad加载的css,如何根据不同的页面启用,防止全局污染?

目前我还没找到如何销毁oc已加载的css文件,不过有个间接方案:切换路由的时候动态给body切换class名, 每个css文件里的内容都在body的class下,这样可以避免全局污染,通用的class放在index.css里

关注 2 回答 1

Ectx 提出了问题 · 2018-05-14

angularjs ocLazyLoad加载的css,如何根据不同的页面启用,防止全局污染?

目前公司的一个项目使用的是angularjs1.5,里面的很多js、css文件都是写在resolve的$ocLazyLoad里进行懒加载。

然而我发现一个问题就是,使用$ocLazyLoad加载完成的css和js,在页面切换后竟然没有进行清理,就一直挂在head里,越积越多,然后很多class同名的遭到污染。

有没有什么方法让$ocLazyLoad加载的文件只在当前路由下启用?

代码样例:

function config ($stateProvider, $urlRouterProvider, $ocLazyLoadProvider, $httpProvider) {
  $stateProvider
    .state('index', {
      url: "/index",
      templateUrl: "src/index.html",
      data: { pageTitle: '首页' }
    })
    // 页面 1
    .state('index.page1', {
      url: "/page1",
      templateUrl: "src/page-1.html",
      data: { pageTitle: '页面 1' },
      resolve: {
        loadPlugin: function ($ocLazyLoad) {
          return $ocLazyLoad.load([
            {
              files: ['css/style-1.css']
            },
          ]);
        }
      }
    })
    // 页面 2
    .state('index.page2', {
      url: "/page2",
      templateUrl: "src/page-2.html",
      data: { pageTitle: '页面 2' },
      resolve: {
        loadPlugin: function ($ocLazyLoad) {
          return $ocLazyLoad.load([
            {
              files: ['css/style-2.css']
            }
          ]);
        }
      }
    })

  // 问题:
  // 当 页面1 加载后,切换到 页面2,
  // 而此时 页面1 的加载的 style-1.css 依然挂在head标签里未消除,
  // 对 页面2 造成了污染

}

angular.module('test').config(config);

关注 2 回答 1

Ectx 提出了问题 · 2018-05-14

angularjs ocLazyLoad加载的css,如何根据不同的页面启用,防止全局污染?

目前公司的一个项目使用的是angularjs1.5,里面的很多js、css文件都是写在resolve的$ocLazyLoad里进行懒加载。

然而我发现一个问题就是,使用$ocLazyLoad加载完成的css和js,在页面切换后竟然没有进行清理,就一直挂在head里,越积越多,然后很多class同名的遭到污染。

有没有什么方法让$ocLazyLoad加载的文件只在当前路由下启用?

代码样例:

function config ($stateProvider, $urlRouterProvider, $ocLazyLoadProvider, $httpProvider) {
  $stateProvider
    .state('index', {
      url: "/index",
      templateUrl: "src/index.html",
      data: { pageTitle: '首页' }
    })
    // 页面 1
    .state('index.page1', {
      url: "/page1",
      templateUrl: "src/page-1.html",
      data: { pageTitle: '页面 1' },
      resolve: {
        loadPlugin: function ($ocLazyLoad) {
          return $ocLazyLoad.load([
            {
              files: ['css/style-1.css']
            },
          ]);
        }
      }
    })
    // 页面 2
    .state('index.page2', {
      url: "/page2",
      templateUrl: "src/page-2.html",
      data: { pageTitle: '页面 2' },
      resolve: {
        loadPlugin: function ($ocLazyLoad) {
          return $ocLazyLoad.load([
            {
              files: ['css/style-2.css']
            }
          ]);
        }
      }
    })

  // 问题:
  // 当 页面1 加载后,切换到 页面2,
  // 而此时 页面1 的加载的 style-1.css 依然挂在head标签里未消除,
  // 对 页面2 造成了污染

}

angular.module('test').config(config);

关注 2 回答 1

Ectx 关注了用户 · 2018-03-27

毛瑞 @ifat3

网站:30ke.cn
小程序:诗词大挑战,成语接龙挑战,数独之星

编程,学习,分享,记录生活的点点滴滴,保持热情42度。

echo "Hi U,"
printf("在编程的路上")
console.log("有你有我")
System.out.println("一起加油!")

关注 4048

Ectx 关注了用户 · 2018-03-27

SevenOutman @sevenoutman

有耐心,但气不过不讲道理的事。
GitHub 间歇活跃用户。
赛文奥特曼??

关注 6552

Ectx 关注了用户 · 2018-03-27

hfhan @hfhan

砥砺前行

关注 19591

认证与成就

  • 获得 0 次点赞
  • 获得 4 枚徽章 获得 0 枚金徽章, 获得 1 枚银徽章, 获得 3 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-01-12
个人主页被 274 人浏览