vue模块化

vue模块化

故心故心故心故心小故冲啊


定义

模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分割、作用域隔离、模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等多个方面。

简单的说:模块化就是将变量和函数 放入不同的文件中;

模块的优点

1.可维护性。 因为模块是独立的,一个设计良好的模块会让外面的代码对自己的依赖越少越好,这样自己就可以独立去更新和改进。

2.命名空间。 在 JavaScript 里面,如果一个变量在最顶级的函数之外声明,它就直接变成全局可用。因此,常常不小心出现命名冲突的情况。使用模块化开发来封装变量,可以避免污染全局环境。

3.重用代码。 我们有时候会喜欢从之前写过的项目中拷贝代码到新的项目,这没有问题,但是更好的方法是,通过模块引用的方式,来避免重复的代码库。

CommonJS AMD/CMD

CommonJS是一种规范,其内容有很多种,NodeJS是这种规范的实现。SeaJS是模块加载器,是用CMD规范
AMD/CMD是从 CommonJS 讨论中诞生的,
RequireJS 遵循 AMD(异步模块定义)规范,
Sea.js 遵循 CMD (通用模块定义)规范;
规范的不同,导致了两者 API 不同。

AMD 提前执行:提前异步并行加载
优点:尽早执行依赖可以尽早发现错误;
缺点:容易产生浪费

CMD 延迟执行:延迟按需加载
优点:减少资源浪费
缺点:等待时间长、出错时间延后

扩展:

RequireJS 是一个前端的模块化管理的工具库,遵循AMD规范,通过一个函数来将所有所需要的或者说所依赖的模块实现装载进来,然后返回一个新的函数(模块),我们所有的关于新模块的业务代码都在这个函数内部操作,其内部也可无限制的使用已经加载进来的以来的模块。

在这里插入图片描述
CMD
在这里插入图片描述

ES6模块(module)

模块Module
一个模块,就是一个对其他模块暴露自己的属性或者方法的文件。
导出Export
作为一个模块,它可以选择性地给其他模块暴露(提供)自己的属性和方法,供其他模块使用。

导出export 一个

export const x = 20;

导入
import {x} from './views/moduleE'

导出export 多个

var name = 'amy';
var age = 18;
var hobby = '购物';
export {name, age, hobby};

导入
import {name, age, hobby} from './views/moduleA' 

导出export 别名

var name = 'amy';
var age = 18;
var hobby = '购物';
export { name as v1, age as v2, hobby as v3};

导入
import {v1, v2, v3} from './views/moduleA';

导出export default 仅有一个

export default {name:'abc',hobby:'games'}

导入
import obj from './views/moduleD'

export 和export default

 export default {name:'abc',id:1};

 var x = 100;
 var y = 1000;

 export  {x as v1,y as v2}  
 
 导入
import box,{v1,v2} from './views/moduleD' 

定义公共数据

//性别
export const sexData = [
    { key: 'man', value: '男' },
    { key: 'woman', value: '女' }
  ];
  //用户
export const userData = [
    { id: '1', value: 'name1' },
    { id: '2', value: 'name2' }
  ];
  
导入
import {sexData,userData} from './views/moduleB' 

定义公共函数

var num = 1;
export function get(){
    return num;
  }
  
export function set(v) {
    return num=v;
  }
  
export function reset() {
    return num = 1;
  }
  
导入
import { get, set, reset} from './views/moduleC'

图片的导入

1、页面直接引入

<img  src='@/assets/img/1.jpg' />

2、通过import的方式

import img1 from '@/assets/img/1.jpg'  //导入图片
<img  :src="img1" /></div> 

3、通过require的方式

data () {
    return {
      img:[require("@/assets/img/1.jpg"),
           require("@/assets/img/2.jpg")]

    }
  },

common.js和ES6模块区别

node使用的是commonjs 在使用模块的时候是运行时同步加载的 拷贝模块中的对象

模块可以多次加载,但只会在第一次加载 之后会被缓存 引入的是缓存中的值

1.commonjs输出的,是一个值的拷贝,而es6输出的是值的引用;

2.commonjs是运行时加载,es6是编译时输出接口;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中,模块开发是将一个大型应用程序拆分成小的、可重用的模块,然后将这些模块组合在一起构建整个应用程序。模块可以提高开发效率,使代码更易于理解和维护。例如,可以将一个功能拆分成多个组件,每个组件专注于实现独立的功能。这样,开发人员可以集中精力处理每个组件的逻辑,而不用同时关注整个应用程序的细节。 在Vue中,可以使用组件来创建模块。组件是一个功能代码集,可以方便地反复使用。通过使用组件,可以将页面拆分成多个小模块,每个小模块负责一个特定的功能。这样,我们可以更加灵活地组织代码,并且可以在不同的地方重复使用同一个功能代码集。 Vue的开发模式是MVVM模式,其中VM(ViewModel)的任务是完全封装DOM操作,开发人员不需要再关心Model和View之间的互相影响。当Model发生改变时,View会自动更新;当用户修改View时,Model中的数据也会相应变。这样,开发人员可以将注意力集中在如何操作Model上,而不需要过多地关注DOM操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue实战中的模块开发](https://blog.csdn.net/qq_40792558/article/details/110380334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [挑战百日学习计划(小程序开发)-第9天(Vue组件component)](https://download.csdn.net/download/weixin_38691739/14043796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue模块开发](https://blog.csdn.net/qq_43460335/article/details/123964102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值