vue全家桶(四)前端工程化
创始人
2024-05-26 00:39:39
0

vue全家桶(四)前端工程化

  • 1.模块化的相关规范
    • 1.1模块化概述
    • 1.2模块化的分类
      • A.浏览器端的模块化
      • B.服务器端的模块化
      • C.ES6模块化
      • 1.2.1 Node.js中通过bable体验ES6模块化
      • 1.2.2 ES6模块化的基本语法
        • 1.2.2.1 默认导出与默认导入
        • 1.2.2.2 按需导出与按需导入
        • 1.2.2.3 结合使用
        • 1.2.2.4 直接导入并执行模块代码
  • 2.webpack的用法
  • 3.vue单文件组件
  • 4.element-ui 的基本使用

1.模块化的相关规范

1.1模块化概述

模块化就是把单独一个功能封装到一个模块(文件)中,模块之间相互隔离,但是可以通过特殊的接口公开内部成员,也可以依赖别的模块

模块开发的好处:方便代码的重用,从而提升开发效率,并且方便后期的维护

1.2模块化的分类

A.浏览器端的模块化

    1).AMD(Asynchronous Module Definition,异步模块定义)代表产品为:Require.js2).CMD(Common Module Definition,通用模块定义)代表产品为:Sea.js

B.服务器端的模块化

    服务器端的模块化规范是使用CommonJS规范:1).使用require引入其他模块或者包2).使用exports或者module.exports导出模块成员3).一个文件就是一个模块,都拥有独立的作用域

C.ES6模块化

在语言层面上定义了ES6模块化规范,是浏览器端与服务器端通用的模块化开发规范
ES6模块化规范中定义:
1).每一个js文件都是独立的模块
2).导入模块成员使用import关键字
3).暴露模块成员使用export关键字

小结:推荐使用ES6模块化,因为AMD,CMD局限使用与浏览器端,而CommonJS在服务器端使用。
ES6模块化是浏览器端和服务器端通用的规范.

1.2.1 Node.js中通过bable体验ES6模块化

  1. 打开终端,输入命令:npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
  2. 安装完毕之后,再次输入命令安装:npm install --save @babel/polyfill
  3. 在项目目录中创建babel.config.js文件。
  4. 在项目目录中创建index.js文件作为入口文件
    在index.js中输入需要执行的js代码,例如:
    console.log(“ok”);
    编辑js文件中的代码如下:const presets = [["@babel/env",{targets:{edge:"17",firefox:"60",chrome:"67",safari:"11.1"}}]]//暴露module.exports = { presets }

1.2.2 ES6模块化的基本语法

1.2.2.1 默认导出与默认导入

在这里插入图片描述

  • 默认导出 export default 默认导出的成员
  • 默认导入import 接收名称 from '@/utils/common.js'
  • 接收名称可以自定义
  • 每个模块中,只允许使用唯一的一次export default否则会报错

1.定义
src\utils\common.js

const whetherList = [{ value: '是', label: '是' },{ value: '否', label: '否' },
]
function show() {console.log('111111111111');
}
export default {whetherList,show}

2.使用

import common from '@/utils/common.js'//common 自定义的,想要使用导出数据common.whetherList
data() {return {whetherList1: common.whetherList,}
},
mounted() {common.show()//直接调用console.log('treeDateAll1111',common.whetherList);},

1.2.2.2 按需导出与按需导入

在这里插入图片描述
在每个模块中,可以使用多次按需导出
1.定义
src\utils\common.js

export const s1 = 'aaaaa'
export let s2 = 'cccccc'export function say(res) {console.log('12121212121212')
}

2.使用

import {s1,s2,say} from '@/utils/common.js'
console.log('treeDateAll1111', s1,s2,say);

3.值得注意的地方:定义什么名字,引用什么名字(s1,s2,say)
4.想要更改名字
使用时,s2 as ss2,s2已经不能使用了,使用ss2

import {s1,s2 as ss2,say} from '@/utils/common.js'
console.log('treeDateAll1111',common.whetherList, s1,ss2,say);

1.2.2.3 结合使用

一个js文件,只能使用一次默认导出(export default);多个按需导出(export const s1 = ‘aaaaa’)

import common,{s1,s2 as ss2,say} from '@/utils/common.js'
console.log('treeDateAll1111', s1,ss2,say);

1.2.2.4 直接导入并执行模块代码

有时候,我们只想单纯执行某个模块中的代码,并不需要得到模块中向外暴露的成员,此时可以直接导入并执行模块代码
在这里插入图片描述
在src\utils\m2.js中
在这里插入图片描述

for (let i = 0; i < 3; i++) {console.log('i', i);}

在vue文件中直接引用:import '@/utils/m2.js',会直接打印出来

在这里插入图片描述

2.webpack的用法

webpack概述
webpack是一个流行的前端项目构建工具(打包工具),可以解决当前web开发中所面临的困境。
webpack提供了友好的模块化支持,以及代码压缩混淆,处理js兼容问题,性能优化等强大的功能,从而让程序员把工作重心放到具体得功能实现上,提高了开发效率和项目的可维护性。

目前绝大多数企业中的前端项目,都是基于webpack进行打包构建的

3.vue单文件组件

vue单文件的基本用法
单文件组件的组成结构

  • template 组件的模板区域
  • script业务逻辑区域
  • style 样式区域

在这里插入图片描述


4.element-ui 的基本使用

https://element.eleme.cn/#/zh-CN
图标去:阿里矢量库

运行

npm i element-ui -S

在main.js文件中添加以下代码

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n// set ElementUI lang to EN
Vue.use(ElementUI, { locale })// 如果想要中文版 element-ui,按如下方式声明// Vue.use(ElementUI)

相关内容

热门资讯

读什么什么有感的英文 读什么什么有感的英文英语读后感标题 “读XXX有感”用英语说是 “Reading after XX...
秦岚个人资料身高体重 秦岚个人资料身高体重身高:165公分 体重:46公斤秦岚 生日:七月十七日 星座:巨蟹座 出生地:沈...
双鱼和天秤会纠缠一辈子,既相配... 双鱼和天秤会纠缠一辈子,既相配又相克,为什么?双鱼座的人和天秤座的人都是比较细心的,而且特别敏感,有...
独自一人在外怎样和别人相处? 独自一人在外怎样和别人相处?我觉得独自一个人在外面一定要好好的照顾自己,应该找一份工作,找一个住的地...
朱自清散文集有哪些写的好,值得... 朱自清散文集有哪些写的好,值得背诵的?《背影》、《 春》、《 荷塘月色》、《 匆匆》都是不错的佳...
大家最讨厌的电视剧的哪一个主角... 大家最讨厌的电视剧的哪一个主角?我觉得最讨厌的电视剧主角是容嬷嬷。都挺好,里面的苏大强就是越看越别扭...
69DT伤害怎么才能上1300... 69DT伤害怎么才能上1300 !我加点是4L1M!现在60了!伤害才800!我没大号,想买梦幻币买...
孩子上课不认真听讲 孩子上课不认真听讲我的孩子七周半,已经上二年级了,但是上课不认真听讲总是搞小动作,说了很多次也不听,...
《红脸儿》的主要内容 《红脸儿》的主要内容  红脸儿主要内容:   小说以散淡而富有诗意的语言回顾了“我”与3个小伙伴之间...
异地恋的成功例子 异地恋的成功例子 情侣异地恋8年终成正果 两人存下186张火车票见证爱情一对河南的情侣在大学恋爱时便...
小狗吃了死耗子怎么办 小狗吃了死耗子怎么办你好,没事的,放心吧,你的小狗是宠物狗还是土狗,若是宠物狗的话可能会给它造成身体...
请问有没有死亡万花筒广播剧资源... 请问有没有死亡万花筒广播剧资源?死亡万花筒,我有呀!死亡万花筒广播剧,地·址:9525.video(...
徐缺有哪些女人 徐缺有哪些女人徐缺是小说《最强反套路系统》中的角色,他有许多女性关系,其中包括:1. 林小红:徐缺的...
假如我是四大名著中的人物作文9... 假如我是四大名著中的人物作文900假如你是的林黛玉的话那你就会好好读书,不至于连900个字都写不出了...
西游记81难? 西游记81难?西游记的81难是师徒四人取经回来在河中落水经书被淹了的事
魔兽世界风暴王子问题! 魔兽世界风暴王子问题!现在3.05这版本 王子第4阶段的屏障 是不是可以被MS驱散? 屏障驱散后是...
如何评价张杰的少年中国说 如何评价张杰的少年中国说我觉得非常棒,张杰的家庭条件不好。从小就非常努力。刻苦学习音乐,经过拼搏奋斗...
智取生辰纲中杨志是怎样的人?他... 智取生辰纲中杨志是怎样的人?他失败的原因是什么?简短些志有智慧,但是他忽略了一个重要的因素:团队的合...
有一本书,名字忘记了.好象是美... 有一本书,名字忘记了.好象是美国人写的.梭罗《瓦尔登湖》 如果你用的是新教材,应该是这篇吧是 海明威...
四岁孩子看什么书 四岁孩子看什么书可以看一些带有简单数字的书、色彩鲜艳的图画、动物图画等,培养他的数字感和色彩感,尽量...