Vue从入门到精通-01-Vue的介绍和vue-cli

news2024/9/21 20:45:48

MVVM模式

  • Model:负责数据存储

  • View:负责页面展示

  • View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示

关于框架

为什么要学习流行框架

1、企业为了提高开发效率:在企业中,时间就是效率,效率就是金钱;企业中,使用框架,能够提高开发的效率。

提高开发效率的发展历程

原生JS -> Jquery之类的类库 -> 前端模板引擎 -> Angular.js / Vue.js(能够帮助我们减少不必要的DOM操作;提高渲染效率;双向数据绑定的概念)

2、在Vue中,一个核心的概念就是:数据驱动,避免手动操作DOM元素。这样的话,可以让前端程序员可以更多的时间去关注数据的业务逻辑,而不是关心 DOM 是如何渲染的了。

框架和库的区别

框架

框架是一套完整的解决方案。

对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。但是优点也很明显:功能完善、提供了一整套的解决方案。

库(插件)

只是提供某一个小功能。

对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。

举例:

  • 从Jquery 切换到 Zepto

  • 从 EJS 切换到 art-template

前端的各种框架

Vue 和 React 的相同点

  • 利用虚拟DOM实现快速渲染

  • 轻量级

  • 响应式组件

  • 支持服务器端渲染

  • 易于集成路由工具、打包工具以及状态管理工具

PS:Vue 在国内很受欢迎;React 在国内和国外都很受欢迎,适合做大型网站。

什么是虚拟 DOM

传统的web开发,是利用 jQuery操作DOM,这是非常耗资源的。

我们可以在 JS 的内存里构建类似于DOM的对象,去拼装数据,拼装完整后,把数据整体解析,一次性插入到html里去。这就形成了虚拟 DOM。

Vue1.0没有虚拟DOM,Vue2.0改成了基于虚拟DOM。

前端框架回顾

Vue框架中,没有控制器。

Vue 框架

发展历史

  • 2013年底作为尤雨溪个人实验项目开始开发

  • 2014年2月公开发布。

  • 2014年11月发布0.11版本

  • 2016年10月发布2.0版本。

相关网址

  • 中文官网

  • vuejs官方论坛

  • GitHub地址:GitHub - vuejs/vue: This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core

  • Vue1.0 在线文档:起步 - vue.js

  • Vue2.x 在线文档:介绍 — Vue.js

  • Vue1下载地址:http://v1-cn.vuejs.org/js/vue.js

  • Vue2下载地址:https://cdn.jsdelivr.net/npm/vue/

上方截图的时间:2018-03-02。

介绍

Vue 本身并不是一个框架,Vue结合周边生态构成一个灵活的、渐进式的框架。

Vue 以及大型 Vue 项目所需的周边技术,构成了生态。

渐进式框架图:

Vue框架的特点

  • 模板渲染:基于 html 的模板语法,学习成本低。

  • 响应式的更新机制:数据改变之后,视图会自动刷新。【重要】

  • 渐进式框架

  • 组件化/模块化

  • 轻量:开启 gzip压缩后,可以达到 20kb 大小。(React 达到 35kb,AngularJS 达到60kb)。

Vue 的环境搭建

我们首先要安装好 NVM、Node.js环境,然后再来做下面的操作。

常见的插件

  • Webpack:代码模块化构建打包工具。

  • Gulp:基于流的自动化构建工具。

  • Babel:使用最新的 规范来编写 js。

  • Vue:构建数据驱动的Web界面的渐进式框架

  • Express:基于 Node.js 平台,快速、开放、极简的 Web 开发框架。

以上这些包,都可以通过 NPM 这个包管理工具来安装。

引用 Vue.js 文件

1、方式一:(CDN的方式进行引用)

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
     <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
 </head>
 <body>
 ​
 ​
 </body>
 </html>

2、方式二:(下载 vue.js 文件)

去网站 https://cdn.jsdelivr.net/npm/vue/ 下载 vue.js 文件,直接放到工程文件里,然后引用。

3、方式三:(NPM的方式安装vue)

 # 最新稳定版
 $ npm install vue

如果网络不稳定,可以采用下面的方式安装:

 $ cnpm i vue --save

然后在代码中通过下面这种方式进行引用:

   import Vue from 'vue'

利用 vue-cli 新建一个空的项目

Vue 提供一个官方命令行工具,可用于快速搭建大型单页应用。该工具为现代化的前端开发工作流提供了开箱即用的构建配置。只需几分钟即可创建并启动一个带热重载、保存时静态检查以及可用于生产环境的构建配置的项目。

官方代码参考

   npm install -g @vue/cli
 ​
   vue create my-app
 ​
   cd my-app
 ​
   npm run serve

我们根据上方的参考代码,来看看“利用 vue-cli 新建一个空的项目”的步骤。

安装 vue-cli(命令行工具)

安装命令如下:

 # 全局安装 vue-cli
 $ npm install -g @vue/cli

初始化一个 simple 项目

(1)首先执行:

   vue create my-app

输入上方命令后,会弹出一个选项:

如果是初学者,直接选default就行。之后会自动生成一个空的初始化项目,包含了项目目录、以及项目依赖的脚本。

这个空项目的工程文件如下:(请务必仔细研究这个项目的写法和目录结构)

  • 2019-06-21-vue-my-app.zip

我们可以看到这个项目的结构:

  • src:项目源码

  • .babelrc:ES6编译插件的配置

  • index.html:单页面的入口

上方截图中,npm install指的是下载各种依赖包,npm run dev指的是打开发包,npm run build指的是打生产包。

(2)本地运行项目:

   cd my-app
 ​
   npm run serve

浏览器输入http://localhost:8080/,就可以让这个空的项目在本地跑起来:

备注:我们在 GitHub上下载的任何Vue有关的项目,第一步都是要首先执行 npm install,安装依赖的 mode_modules,然后再运行。我们发给同事的工程文件,建议不要包含 node_modules

构建一个 非 simple 项目

构建一个空的项目,首先执行:

$ vue create vuedemo2

上图中,选择 Manually select features,然后根据提示依次输入:

  • project name:要求小写

  • description:默认即可。

  • vue-router:需要。

  • ESlint:语法检查,初学者可以暂时不需要。

  • 单元测试:暂时也不需要。

  • e2e test:不需要。

选择 eslint 的配置:

然后让这个空的项目就可以在浏览器上跑起来。

vue 项目结构分析

  • buid:打包配置的文件夹

  • config:webpack对应的配置

  • src:开发项目的源码

    • App.vue:入口组件。.vue文件都是组件。

    • main.js:项目入口文件。

  • static:存放静态资源

  • .babelrc:解析ES6的配置文件

  • .editorcofnig:编辑器的配置

  • .postcssrc.js:html添加前缀的配置

  • index.html:单页面的入口。通过 webpack打包后,会把 src 源码进行编译,插入到这个 html 里面来。

  • package.json:项目的基础配置,包含版本号、脚本命令、项目依赖库、开发依赖库、引擎等。

图片的base64编码

默认是10k以下,建议都通过 base64编码。在配置文件webpack.base.conf.js中进行修改:

      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }

希望各位可以点个赞点个关注,这对up真的很重要,谢谢大家啦!

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

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

相关文章

idea的插件,反编译整个jar包

idea的插件&#xff0c;反编译整个jar包 1.安装插件1.1找到插件1.2 搜索插件 2.反编译整个jar包2.1 复制jar包到工件目录下&#xff1a;2.2 选中jar包&#xff0c;点出右键 3.不用插件&#xff0c;手动查看某一个java类3.1 选中jar包&#xff0c;点出右键 1.安装插件 1.1找到插…

VPN的基本概念

随着互联网的普及和应用的广泛&#xff0c;网络安全和隐私保护越来越受到人们的关注。在这个信息爆炸的时代&#xff0c;我们的个人信息、数据通信可能会受到各种威胁&#xff0c;如何保护自己的隐私和数据安全成为了一个迫切的问题。而VPN&#xff08;Virtual Private Network…

用Jenkins Gerrit-Trigger插件实现提交gerrit后自动启动编译验证

说明&#xff1a;如果没有gerrit-trigger&#xff0c;说明缺少插件&#xff0c;先安装插件即可。 步骤 1.在Jenkins首页点击Manage Jenkins 2.点击Gerrit Trigger 3.配置gerrit服务器 下图是已配置好的gerrit服务器&#xff0c;配置完毕记得点击status下面的按钮进行测试服务…

Linux学习之路 -- 进程篇 -- 自定义shell的编写

前面介绍了进程程序替换的相关知识&#xff0c;接下来&#xff0c;我将介绍如何基于前面的知识&#xff0c;编写一个简单的shell&#xff0c;另外本文的所展示的shell可能仅供参考。 目录 <1>获取用户的输入和打印命令行提示符 <2>切割字符串 <3>执行这个…

网络安全的防护措施有哪些?

1. 安全策略和合规性 2. 物理和网络安全 3. 数据加密 4. 软件和系统更新 5. 访问控制 6. 威胁监测和响应 7. 员工培训和安全意识 8. 备份和灾难恢复 零基础入门学习路线 视频配套资料&国内外网安书籍、文档 网络安全面试题 网络安全的防护措施多种多样&#xff0c…

openssl3.2 - exp - 使用默认的函数宏,在release版中也会引入__FILE__

文章目录 openssl3.2 - exp - 使用默认的函数宏&#xff0c;在release版中也会引入__FILE__概述笔记验证是否__FILE__在release版下也能用&#xff1f;将openssl编译成release版的&#xff0c;看看CRYPTO_free()是否只需要一个参数就行&#xff1f;将工程中的openssl相关的库换…

Vue---组件

Vue—组件 目录 Vue---组件定义组件全局组件局部组件 组件通讯***重点***父子通信之父传子&#xff08;props&#xff09;父子通信之子传父&#xff08;$emit&#xff09;ref属性&#xff08;$refs&#xff09; 动态组件插槽命名插槽 定义组件 全局组件 vue2中template只能传…

2.Neo4j的搭建启动

Graph Database 图数据库 版本对应关系 官网都是高版本&#xff0c;推荐使用下载地址可以找到社区老版本&#xff1a; https://we-yun.com/doc/neo4j/ neo4j.bat 启动脚本 cypher-shell.bat 执行CQL语句的。 import文件夹可以放入excel,csv等数据文件&#xff0c;导入到…

IMU/捷联惯导常见的术语,以及性能评价标准(附Python解析代码)

0. 简介 现在的机器人领域在普遍使用IMU&#xff08;惯性导航单元&#xff09;。该系统有三个加速度传感器与三个角速度传感器&#xff08;陀螺&#xff09;组成&#xff0c;加速度计用来感受飞机相对于地垂线的加速度分量&#xff0c;陀螺仪用来感知飞机的角速率变化&#xff…

服务器被CC攻击怎么办

遇到CC攻击时&#xff0c;可采取以下措施&#xff1a;限制IP访问频率、启用防DDoS服务、配置Web应用防火墙、增加服务器带宽、使用负载均衡分散请求压力。 处理服务器遭遇CC攻击的方法如下&#xff1a; 1. 确认攻击 你需要确认服务器是否真的遭受了CC攻击&#xff0c;这可以…

基于单片机的多功能电子万年历系统

摘要:该题目要求学生综合运用单片机原理、低频电子线路、数字电路与逻辑设计等相关知识,设计完成多功能电子万年历系统。通过完成设计任务,使学生掌握单片机设计开发的基本流程,增强学生动手实践能力,培养学生分析和解决实际问题的能力,为后续课程的学习和工作打下良好基础。 关…

张大哥笔记:我付钱了,我就是大爷?

很抱歉用这个当做标题&#xff0c;来给大家分享一些电商的故事&#xff01;大家好&#xff0c;我是张大哥&#xff0c;今天聊聊在电商路上遇到过的奇葩买家&#xff1f; 比如最近我在做PDD的时候&#xff0c;就会遇到很多莫名其妙的sha子&#xff0c;咱是知识份子&#xff0c;肯…

Excel vlookup函数的使用教程 和 可能遇到的错误解决方法

使用VLOOKUP示例 被查询的表格 表一 A列B列C列A1aB2bC3c 要匹配的列 表二 F列G列H列ACBDA 要G列匹配字母&#xff0c;H列匹配数字 G 使用公式VLOOKUP(F5,A:D,3,0) 参数说明 F5 是表二 F列第五行的A A:D表是要匹配的数据列表在A到D列&#xff0c;就是表一 &#xff08;注意…

go 安装软件报go.mod file not found

执行 go get -u github.com/go-sql-driver/mysql 下载mysql 报错 解决方法: 控制台&#xff1a;输入go env 返回如下&#xff1a; 红圈值为NUL&#xff0c;需要设置GOMOD的值, 然后再控制台执行 &#xff08;1&#xff09;mkdir mod (2)go mod init mod 然后再执行下载&…

Linux逻辑方式合并物理磁盘

在日常生活中&#xff0c;我们总是遇到一个文件太大&#xff0c;以至于我们的两个磁盘都装不下&#xff0c;这时我们就需要将两块物理磁盘逻辑化的连接在一起&#xff0c;把物理磁盘使用逻辑化的方法合并在一起&#xff0c;形成卷组&#xff0c;使得磁盘空间可以公用&#xff1…

【idea】idea 中 git 分支多个提交合并一个提交到新的分支

一、方法原理讲解 我们在 dev 分支对不同的代码文件做了多次提交。现在我们想要把这些提交都合并到 test 分支。首先我们要明白四个 git 操作&#xff0c; commit&#xff1a;命令用于将你的代码变更保存到本地代码仓库中&#xff0c;它创建了一个新的提交&#xff08;commit…

Python 操作PDF图片 – 添加、替换、删除PDF中的图片

PDF文件中的图片可以丰富文档内容&#xff0c;提升用户的阅读体验。除了在PDF中添加图片外&#xff0c;有时也需要替换或删除其中的图片&#xff0c;以改进视觉效果或更新信息。文本将提供以下三个示例&#xff0c;介绍如何使用Python 操作PDF文件中的图片&#xff1a; 目录 …

2017年全国职业院校技能大赛高职组“信息安全管理与评估”样题

培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;624032112 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 移动应用开发群&#xff1a;548238632 极安云科专注于技能提升&#xff0c;赋能 2024年广东省高校的技…

面试八股——HashMap

实现原理 红黑树是为了解决链表过长之后&#xff0c;查找时间过长的问题&#xff0c;将链表存储变为红黑树存储。 put方法的实现&#xff08;5⭐&#xff09; 相关属性&#xff1a; 1. 容量&#xff1a;初始容量为2^4。 2. 加载因子&#xff1a;初始值为0.75 上面两个属性的…

linux网络编程启动!(开端)

网络设计模式 &#xff1a;就两种模型 b/s 模型 : 浏览器—>服务器 优点是&#xff1a;跨平台。开发成本低 缺点是&#xff1a;网络通信的时候必须要使用http/https协议 http协议 是个应用层协议 不能在磁盘缓存或者从磁盘加载大量数据 http 与https 多了一层加密 c/s模型 …