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

news2024/9/27 19:14:27

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.js
    2).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',会直接打印出来

<template>
  <div>
    <!-- 前端工程化 -->
    <div>{{whetherList1}}</div>
  </div>
</template>

<script>
// import common,{s1,s2,say} from '@/utils/common.js'
import common,{s1,s2 as ss2,say} from '@/utils/common.js'
import  '@/utils/m2.js'
export default {
  name: 'basicKnowledgeFour',
  props: {},
  components: {},
  //common 自定义的,想要使用导出数据common.whetherList
  data() {
    return {
      whetherList1: common.whetherList,
    }
  },
  mounted() {
    common.show()//直接调用
    // console.log('treeDateAll1111', common.whetherList,s1,s2,say);
    console.log('treeDateAll1111', common.whetherList,s1,ss2,say);
  },
  methods: {

  }
}
</script>

<style scoped>
</style>

在这里插入图片描述

2.webpack的用法

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

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

3.vue单文件组件

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

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

在这里插入图片描述

<template>
  <div>
    <div>{{whetherList1}}</div>
  </div>
</template>

<script>

export default {
  name: 'basicKnowledgeFour',
  props: {},
  components: {},
  data() {
    return {
    }
  },
  mounted() {},
  methods: {}
}
</script>
<style scoped>
</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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue - vue项目中解决 IOS + H5 滑动边界橡皮筋弹性效果

问题: 最近遇到一个问题&#xff0c;我们在企业微信中的 H5 项目中需要用到table表格&#xff08;支持懒加载 上划加载数据&#xff09;。但是他们在锁头、锁列的情况下&#xff0c;依旧会出现边界橡皮筋效果。就会显示的很奇怪。 什么是ios橡皮筋效果&#xff1a; 我们知道元素…

华为MateBook E Go电脑使用U盘怎么安装Win10系统?

华为MateBook E Go电脑使用U盘怎么安装Win10系统&#xff1f;有用户购买这款电脑之后&#xff0c;发现系统默认安装的电脑系统是Win11版本的。但是自己不习惯使用这个系统&#xff0c;所以想要去将系统重新安装到Win10来使用。那么要怎么去进行系统重装呢&#xff1f;一起来看看…

微服务门神-Gateway与Sentinel的集成

目录 引言 概述 集成Sentinel 限流维度 网关集成 Route维度 API分组 精准匹配 前缀匹配 正则匹配 自定义限流返回格式 转视频版 引言 书接上篇&#xff1a;微服务门神-Gateway过滤器Filter&#xff0c;讲完了解Gateway过滤器之后&#xff0c;接下来看下Gateway与…

免费常用IP归属地查询API

引言 因毕设需要&#xff0c;需要使用到根据IP地址查询归属地 经过百度查询&#xff0c;发现如下几个api可以尝试&#xff0c;本人决定使用最后一个api 免费常用IP归属地查询API ip-api.com 可切换显示语言 http://ip-api.com/json/117.136.12.79?langzh-CN {"status…

wodat:一款针对Windows Oracle数据库的渗透测试工具

关于wodat wodat是一款功能强大的针对Windows Oracle数据库的渗透测试工具&#xff0c;该工具基于C# .Net Framework开发&#xff0c;能够帮助广大研究人员对Windows平台下的Oracle数据库执行按摩全渗透测试任务。 注意&#xff1a;请在被授权执行安全测试的情况下使用该工具…

[Apache Hudi] 流转批的场景实践

文章目录1.EventTime计算原理2.案例使用2.1 Maven pom 依赖2.2 设置EventTime2.3 Flink API2.4 Flink SQL2.5 读取EventTime在某些业务场景下&#xff0c;我们需要一个标志来衡量hudi数据写入的进度&#xff0c;比如&#xff1a;Flink 实时向 Hudi 表写入数据&#xff0c;然后使…

vue2版本《后台管理模式》(中)

文章目录前言一、创建一个文件夹 utils 里面新增一个 setToken.js 文件(设置token验证&#xff09;二 、创建一个api文件夹 新增 service.js &#xff08;axios拦截器&#xff09;三、在api文件夹里 新增一个 api.js 来接收数据&#xff08;把api封装哪里需要某项数据直接引入就…

运维服务商低成本提升服务质量解决方案

在信息化高速发展的今天&#xff0c;网络建设的重要性不言而喻&#xff0c;更多客户选择将运维服务外包或托管给运维服务商&#xff0c;市场需求愈大竞争压力愈大&#xff0c;想要脱颖而出势必要优化自身提高服务质量&#xff0c;最好是低成本、大提升&#xff0c;nVisual助力渠…

饕餮 NFT 作品集来袭!

饕餮 NFT 作品集包含 Chili Game 创作的体验《饕餮》第一章中的角色。可以在 The Sandbox 农历新年活动期间&#xff08;01/18/23 至 02/28/23&#xff09;体验。 饕餮的故事植根于中国古代神话&#xff0c;主要灵感来自《山海经》&#xff0c;一个关于捉妖人「青蛙侠」的故事。…

ASEMI中低压MOS管18N20参数,18N20封装,18N20尺寸

编辑-Z ASEMI中低压MOS管18N20参数&#xff1a; 型号&#xff1a;18N20 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;200V 栅源电压&#xff08;VGS&#xff09;&#xff1a;30V 漏极电流&#xff08;ID&#xff09;&#xff1a;18A 功耗&#xff08;PD&#x…

神经网络基础部件-卷积层详解

前言 在全连接层构成的多层感知机网络中&#xff0c;我们要通过将图像数据展平成一维向量来送入模型&#xff0c;但这会忽略了每个图像的空间结构信息。理想的策略应该是要利用相近像素之间的相互关联性&#xff0c;将图像数据二维矩阵送给模型中学习。 卷积神经网络(convolu…

教育舆情监测方案有哪些,TOOM讲解教育舆情的应对与处理?

教育舆情方案是针对教育领域的舆情事件或问题而制定的应对方案。其主要目的是通过有效的信息收集、分析、处理和传播&#xff0c;帮助教育机构或相关组织及时掌握和应对公众舆论的发展趋势&#xff0c;维护良好的舆情形象和声誉&#xff0c;教育舆情监测方案有哪些&#xff0c;…

黑马Java后端项目实战--在线聊天交友

【课程简介】 越来越多的系统都有消息推送的功能&#xff0c;如聊天室、邮件推送、系统消息推送等&#xff1b; 要实现消息推送就需要服务端在数据有变化时主动推送消息给客户端&#xff0c;本次课程将带大家使用websocket实现消息推送。 【主讲内容】 1.方法&#xff1a;如…

ANR系列(二)——ANR监听方案之WatchDog

前言 ANR的监控在Android6.0之前可以通过监听文件data/anr/trace读取trace信息来分析&#xff0c;但从6.0之后就被禁止了。随着Android的发展&#xff0c;手机里的ANR越来越多&#xff0c;对ANR的监控方案也就五花八门。 WatchDog方案 WatchDog是个开源的框架&#xff0c;是…

大漠插件最新中文易语言模块7.2302

模块名称:大漠插件中文模块最新通用7.2302模块简介:大漠插件中文模块最新通用7.2302模块特色:原翻译:花老板完善命令备注:易生易世本人花费一个月时间才将命令完善了插件的备注说明.且用且珍惜去掉了大漠插件定制版类.因为没用.模块特色:什么是中文模块?大漠插件模块是由大漠类…

Java SPI 概念和应用实现

Java SPI 测试 Demo一.SPI 简介1.概念 SPI 与 API2.作用二.Jdk SPI 实现1.SPI 接口定义2.SPI 实现类定义3.SPI 配置4.测试三.SpringBoot SPI 实现1.引入 SpringBoot 依赖2.SpringBoot SPI 配置3.测试一.SPI 简介 1.概念 SPI 与 API SPI 全称&#xff1a;Service Provider Int…

Xshell连接阿里云服务器搭建网站

一、建设一个网站的基本要求 申请一个独立的域名申请一台云服务器ECS在服务器上安装网站环境&#xff0c;如&#xff1a;Apache发布网站内容至云服务器将第一步注册的域解析至云服务器的外网IP地址进行ICP备案 二、用户访问网站的过程 在浏览器上输入域名浏览器自动调用DNS&…

SPI(服务提供发现机制)简单使用

一、概述 SPI的英文全称是Service Provider Interface&#xff0c;是Java内置的一种服务提供发现机制。一般常用于一些框架或组件库的开发&#xff0c;我们最熟悉JDBC就应用到了SPI机制&#xff0c;并且在Spring、Dubbo中也大量应用了SPI机制。SPI机制是针对同一个接口采用不同…

质量小议18 -- 熵

未能深入理解其包含的物理意义&#xff0c;浅记于此&#xff0c;以求理解对抗有自然无序的过程。 熵&#xff0c;对系统无序程序的度量&#xff0c;表征系统混乱程度。系统总是由有序向无序&#xff0c;最后走向静寂。 关键词&#xff1a;1. 无序和混乱&#xff1b;2. 有序向无…

Java中static关键字和代码块的学习

本文介绍了Java中static关键字的使用,即静态成员变量和成员方法以及使用,静态与非静态成员变量和方法的对比总结 Java中的代码块介绍与最后结合代码块和构造方法后的初始化代码执行顺序的练习 static和代码块的学习三.认识static关键字1.static修饰成员变量2.static修饰成员方法…