【Vue】快速入门

简介: 【Vue】快速入门

一、前言


大家好,我是初心,本文主要讲解前端系列之Vue框架入门。

文章收录到我是初心的博客【Vue框架系列】专栏,此专栏是初心对Vue框架的学习笔记,希望能够加深自己的印象,以及帮助到大家😉😉。

作者水平有限,不足之处,还请大佬不吝赐教👏👏。


二、Vue简介


2.1 vue是什么


Vue是一套用于构建用户界面的渐进式Javascript框架。


渐进式 Vue可以自底向上逐层的应用
简单应用 只需引入一个轻量小巧的核心库
复杂应用 可以引入各式各样的Vue插件


它提供了一套开发规则,按照这个开发规则可提高开发效率。Vue的核心有三点:

(1)数据视图双向绑定

修改绑定的数据(页面上依赖数据),就能对应的更新视图(页面),极大的解放了操作dom的工作,提供开发效率。

(2)MVVM模式

  • M  数据模型(model)
  • V  视图(页面)(view)
  • VM 数据模型和视图的控制器 (viewmodel)

(3)组件化开发

 

按照Vue的规则,它把页面按照页面功能(导航,侧边栏,下拉框)拆分业务,每一个组件时一个独立的功能,提供代码可维护性,和复用性。

 


image.png

2.2 谁开发的


Vue.js 作者尤雨溪:开源给了我无价的自由


尤雨溪(Evan You),前端框架 Vue.js 作者,独立开源开发者,现居美国新泽西。曾就职于 Google Creative Labs 和 Meteor Development Group。由于工作中大量接触开源的 Java 项目,最后自己也走上了开源之路,现在全职开发和维护 Vue.js。


现在的 Vue 跟运行初期相比,最大的区别就是框架涵盖的范围变大了许多。


一开始 Vue 只有一个核心库,现在则是包含了路由、状态管理、CLI 工具链、浏览器开发者插件、ESLint 插件等等的全套设施。目前只有核心库依然由尤雨溪维护,其它子项目基本都交给团队成员去做日常维护了。


image.png


对作者尤雨溪的采访——Vue 给您带来的最大的收获是什么?


可以这么说,我用键盘敲出了 Vue,而 Vue 把自由和真实的本我馈赠给了我,现在的我很清晰的明白自己在做什么,我想要的 Vue 是什么样的,我能跟随自己内心的指引去开发出 Vue 更多的新功能,我现在根本无法想象再回到大公司去工作的那种情境。  


2.3 Vue的特点


1.采用组件化模式,提高代码复用率,且让代码更好维护。


所谓组件化,就是把页面拆分成多个组件,每个组件依赖的 CSS、JS、模板、图片等资源放在一起开发和维护。 因为组件是资源独立的,所以组件在系统内部可复用,组件和组件之间可以嵌套,如果项目比较复杂,可以极大简化代码量,并且对后期的需求变更和维护也更加友好。


image.png



2.声明式编码,让编码人员无需直接操作DOM,提高开发效率。


也称作声明式渲染。它描述目标性质,让计算机明白目标,而非流程。声明式编程不用告诉电脑问题领域,从而避免随之而来的副作用。而指令式编程专则需要用算法来明确的指出每一步该怎么做。命令式编码:有点像过程化编程;声明式编码:有点像面向对象编程。


image.png


三、搭建Vue开发环境


在我们的引入了Vue的HTML文件中,在浏览器打开控制台,我们可以看到一下两行提示信息。意思分别是:下载Vue的开发者工具以获得更好的开发经历;你正在运行Vue的开发模式,当你在开发产品时确保切换到生产模式,在Vue官网查看更多的技巧。


如果不想每次打开控制台都看到它们,如何取消呢?


image.png


3.1 安装Vue Devtools


下面演示如何取消第一行。首先就像提示中写的,我们需要去下载Vue Devtools工具,下载下来的文件名称叫 Vue.crx ,这个工具的下载链接就在这个提示下面,访问Github可以下载!


下载好Vue.crx之后,如果是Edge浏览器,点击浏览器右上角三个点,点击扩展,管理扩展,将Vue.crx文件拖入到浏览器,添加扩展即可。chrome浏览器也是类似的添加扩展。此时再次刷新浏览器页面,会发现控制台第一行的提示信息已经消失了。  

image.png


3.2 关闭开发模式提示信息


下面演示如何取消第二行。提示信息出现的缘由是:我们使用的Vue是开发版本(Vue.js),而不是生产版本(Vue.min.js),Vue善意的提示我们,如果我们是在生产环境中,建议我们不要使用开发版本,因为它的体积比较大一些。


那么我们如何去关闭这个提示信息呢?在js代码中添加下面这一行代码即可。

Vue.config.productionTip = false

image.png


3.3 遇到的问题


1.Vue.js not detected(Vue未装载)

问题背景:当我们把Vue.crx文件添加到浏览器之后,控制台的第一行提示信息并没有消失。

解决方案:点击浏览器中的管理扩展,将图示中的允许访问文件URL打开,就可以了!


image.png


2.Vue.config.productionTip = false 不起作用


问题背景:添加下面这一行代码后,第二行提示信息并没有消失。


解决方案:直接修改vue.js文件的源码,应该在370行左右,由True修改为False即可。

Vue.config.productionTip = false


四、HelloWorld小实例


4.1 案例制作

1.live server插件


在进行HelloWorld小实例制作之前,我们先安装一款插件---live server。这款插件是一个具有实时加载功能的小型服务器,我们可以在项目中实时用live-server作为一个实时服务器实时查看开发的网页或项目效果。下面在VsCode中安装live server插件。

image.png


我们就可以在VSCode中,右击代码区域,选择Open With Live Server。在浏览器我们可以查看 http://localhost:5500这个网页,网页相当于一个文件系统,根目录就是我们VsCode中的文件夹目录。


我们可以将 favcion.ico文件添加到文件目录中。 favcion.ico用于收藏夹图标和浏览器标签上的显示,如果不设置,浏览器会请求网站根目录的这个图标,如果网站根目录也没有这图标会产生 404。


image.png


在浏览器中,按住Shift和页面上的刷新,就可以强制刷新,从而看到我们的网页图标。这样有没有更美观或者更符合实际一点呢。


image.png


2.Hello World---Vue


使用VsCode开发工具,新建HTML文件,并引入vue.js。

在 body 中准备一个容器,作为Vue实例的模板,并创建Vue实例。使用Vue进行数据绑定,取data中的数据使用的是插值表达式{{}},当文件保存后,不用刷新浏览器即可改变数据。

下面的例子就是从Vue的data区域获取数据,展示在容器中的一级标题标签上。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<div id="root">
    <!-- 从root容器对应的vue实例中的data区域获取数据 -->
    <h1>Hello,{{name}}</h1>
</div>
<body>
    <script src="../js/vue.js"></script>
    <script>
        const x = new Vue({ // Vue构造函数的参数是一个配置对象
            el: "#root", // el用于指定Vue实例为哪个容器服务,值通常为CSS选择器
            data: { // data用于存储数据,供el指定的容器使用
                name: "小郭",
            }
        })
    </script>
</body>
</html>


4.2 案例分析


1.容器和Vue实例之间是一一对应的关系


每个实例只能被一个容器接管,如果有多个容器,那么只有第一个容器能够使用Vue实例中的数据;如果有多个实例,只有第一个实例起作用。


image.png


image.png


两个容器对应一个Vue实例:前一个容器有Vue实例解析,后一个没有。



image.png


image.png



一个容器对应多个Vue实例:容器可以获得到第一个实例,第二个实例不起作用。


2.真实开发中只会有一个Vue实例,Vue实例中有多个小组件


假设容器中有100个、1000个动态数据,那么Vue实例中的data中可能就要写1000个变量,代码会变得非常冗长。所以在将来的企业开发中,一个Vue实例中可能有三个小实例,分别绑定40,40,20个数据,这就是简单理解的Vue组件化思想


3.插值表达式{{}}内可以写什么


类型 详细
data内的数据 Vue实例的data中定义的变量都可以使用
表达式(能产生一个确定的值) 运算表达式(1+1),函数调用表达式( fun(1),str.toString() ),三目运算符
不能是语句 如 if 语句,for 语句


4.data中的数据发生变化,模板中用到的地方会自动发生变化


使用上面3.2.2点Hello World---Vue中的代码和结果进行验证,通过在浏览器的Vue-devtools更改data中的数据,观察页面中数据的变化。

image.png

5.开发时要引用开发版本的Vue,不要使用生产版本的Vue


通过一个小的错误,来演示Vue.js和Vue.min.js的有错误提示和无错误提示。使用开发版本时出现“警告”,控制台会有相对应的提示,而生产版本则不会有任何提示。


控制台报错:Vue is a constructor and should be called with the `new` keyword

image.png

换成生产版本的Vue.min.js,控制台报错变少,让我们更难发现错误:

image.png

1. Vue.js(完整版)


  • 优点:逻辑清晰简单,好写好用。
  • 缺点
  1. 开发需要额外配置版本引用
  2. 代码体积较非完整版大30%,用户体验较差
  3. 视图模板写在HTML/template里,代码量大的时候显得冗余


2. Vue.min.js非完整版


  • 缺点:对初级开发者可能不友好
  • 优点
  1. 代码体积较小,提升用户体验
  2. 不需要解析器,webpack等配置有vue loader,vue loader的作用是在代码打包的时候调用compiler自动解析编译


五、结语


Vue快速入门步骤为:


新建HTML文件,引入Vue.js

使用 div 标签创建模板(容器)

创建Vue实例,指定对应的容器和 data 数据

将容器和实例相互绑定实现视图数据转化


我是初心,文章首发于csdn,你的支持就是创作的最大动力。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨

🍻🍻🍻如果本文对你学习有帮助,就不要吝惜你的一键三连了~


cd4b9ab692104831830695e2b4b148c9.gif


相关文章
|
6天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
6天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
6天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
6天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。
|
5天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
|
7天前
|
存储 JavaScript 开发者
Vue 组件间通信的最佳实践
本文总结了 Vue.js 中组件间通信的多种方法,包括 props、事件、Vuex 状态管理等,帮助开发者选择最适合项目需求的通信方式,提高开发效率和代码可维护性。
|
5天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
|
7天前
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
12天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
12天前
|
存储 JavaScript
Vue 状态管理工具vuex
Vue 状态管理工具vuex