欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue2.0实战之基础入门(1)

程序员文章站 2023-11-20 16:12:40
最近公司的h5项目准备重构,部门老大说前端使用vue2.0来开发,所以就准备把整个项目的开发过程记录下来,一方面是为了记录开发过程中遇到的坑,另一方面也加强自己写作的能力。...

最近公司的h5项目准备重构,部门老大说前端使用vue2.0来开发,所以就准备把整个项目的开发过程记录下来,一方面是为了记录开发过程中遇到的坑,另一方面也加强自己写作的能力。

什么是 vue?

简要介绍一下vue,vue就是一个前端框架,特点是 数据双向绑定,比如说改变input输入框里的内容,就会自动同步更新到页面上绑定该输入框的组件的值。

看一下官方对vue的介绍:

 vue.js,读音 /vjuː/,和view发音几乎一样,可见重心是在视图(view)层上的。vue.js 的目标是通过尽可能简单的 api 实现响应的数据绑定和组合的视图组件。

其和jquery最大的不同点在于jquery通过操作dom来改变页面的显示,而vue通过操作数据来实现页面的更新与展示。下面便是vue数据驱动的概念模型:

vue2.0实战之基础入门(1)

vue.js主要负责的是上图绿色正方体viewmodel的部分,其在view层(即dom层)与model层(即js逻辑层)之间通过viewmodel绑定了dom listeners与data bingings两个相当于监听器的东西。

当view层的视图发生改变时,vue会通过dom listeners来监听并改变model层的数据。相反,当model层的数据发生改变时,其也会通过data bingings来监听并改变view层的展示。这样便实现了一个双向数据绑定的功能,也是vue.js数据驱动的原理所在。

首先我们来写一个hello word!

<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>vue</title>
 <script src="vue.js"></script>
</head>
<body>
 <div id="app">
  {{message}}
 </div>
</body>
<script>
 var app = new vue({
  el: '#app',
  data: {
   message:'hello world!'
  }
 })
</script>
</html>

看似很简单的实现一个字符串的渲染,其实vue在背后做了很多的操作,通过vue,现在数据和dom已经被绑定到了一块,我们可以通过app.message来修改内容,我们可以看到页面的内容也相应进行了更新。

构造器

我们会发现每个页面都会new一个vue,因为每个vue.js应用都是通过构造函数vue创建一个vue的根实例也就是这里所说的构造器。在实例化vue时,需要传入一个选项对象,它可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。全部的选项可以在api 文档中查看。

vue指令

在vue项目的开发中,我们使用的最多的应该就属vue的指令了。通过vue提供的常用指令,我们可以淋漓尽致地发挥vue数据驱动的强大功能。以下便是常用指令的简单介绍:

(1)v-text: 用于更新绑定元素中的内容,类似于jquery的text()方法
(2)v-html: 用于更新绑定元素中的html内容,类似于jquery的html()方法
(3)v-if: 用于根据表达式的值的真假条件渲染元素,如果上图p3为false则不会渲染p标签
(4)v-show: 用于根据表达式的值的真假条件显示隐藏元素,切换元素的 display css 属性
(5)v-for: 用于遍历数据渲染元素或模板,如图中p6为[1,2,3]则会渲染3个p标签,内容依次为1,2,3
(6)v-on: 用于在元素上绑定事件,图中在p标签上绑定了showp3的点击事件

关于更多的vue指令可以查看vue2.0文档,地址:https://vuefe.cn/api/#指令

属性与方法

在每个 vue 实例中都会代理其 data 对象里所有的属性。

var data = { a: 1 }
var vm = new vue({
 data: data
})
vm.a === data.a // -> true
// 设置属性也会影响到原始数据
vm.a = 2
data.a // -> 2
// ... 反之亦然
data.a = 3
vm.a // -> 3

除了 data 属性,vue实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的 data 属性区分。具体请查阅api文档中的实例属性一节。

mvc & mvvm

mvc是一种在后端开发中广泛采用的架构模式,几乎所有的知名后端框架都是传统 mvc 的实现,由于其中的 一些小差异,也可以被叫做 mv*

mvc模式的意思是,软件可以分成三个部分。

vue2.0实战之基础入门(1)

视图(view):用户界面。

控制器(controller):业务逻辑

模型(model):数据保存

各部分之间的通信方式如下:

vue2.0实战之基础入门(1)

  • view 传送指令到 controller
  • controller 完成业务逻辑后,要求 model 改变状态
  • model 将新的数据发送到 view,用户得到反馈所有通信都是单向的

mvvm,它采用双向绑定(data-binding):view的变动,自动反映在 viewmodel,反之亦然。angular 和 ember 都采用这种模式。

vue2.0实战之基础入门(1)

我们可以直接在一个html页面里通过引入vue.js来直接写vue代码,但是这样的方式并不常用。因为如果我们的项目比较大,项目中会存在很多页面,一旦每个页面都引入一个vue.js或者声明一个vue实例,这样非常不利于后期的维护和代码的公用,也会存在实例名冲突的情况,所以我们需要用到vue提供的技术栈来构建强大的前端项目。

1.vue-cli:vue的脚手架工具,用于自动生成vue项目的目录及文件。
2.vue-router: vue提供的前端路由工具,利用其我们实现页面的路由控制,局部刷新及按需加载,构建单页应用,实现前后端分离。
3.vuex:vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象。
4.es6:javascript的新版本,ecmascript6的简称。利用es6我们可以简化我们的js代码,同时利用其提供的强大功能来快速实现js逻辑。
5.npm:node.js的包管理工具,用于同一管理我们前端项目中需要用到的包、插件、工具、命令等,便于开发和维护。
6.webpack:一款强大的文件打包工具,可以将我们的前端项目文件同一打包压缩至js中,并且可以通过vue-loader等加载器实现语法转化与加载。
7.babel:一款将es6代码转化为浏览器兼容的es5代码的插件

利用以上等技术,我们便可以开始构建我们的vue项目了。具体内容请关注!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。