Vue从零开始(一)

一、什么是Vue?

    Vue.js(读音 /vju?/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。如果你是有经验的前端开发者,想知道 Vue.js 与其它库/框架的区别,查看对比其它框架

    以上内容摘自http://cn.vuejs.org/v2/guide/,说实话,我是没看懂写的是个啥,如果你是来来搞懂这个问题的,那么你要失望了,请自行去百度,顺便百度下MVVM,再去了解下reactjs和angularjs,然后再了解下区别。

二、快速上手

    对于码农来讲,别跟我扯那些有的没得,如何能让我在最小的学习代价下能快速使用,迅速掌握这个2016年前端最火的技术之一,才是每一个码农关心的问题好么,进入正题,不过在这之前,还是希望大家去了解一下有关前端框架的相关知识,包括有一定的javascript,html和css的相关经验再往下看。

    vue官方提供了两种不同的安装方案,简单的来讲,就是简化版和完整版,其中的区别,我会在之后的文章里讲清楚,要快速上手,当然是选择简化版,对于简化版的使用,vue比react和angular简直是简单到爆,只需引入一个js文件,写入我们的html文件,我们就可以使用vue的所有基本功能,是不是听上去很牛逼的样子,可能还有很多jquery的童鞋会说,我大jquery不是也只需要引一个js文件嘛,请了解清楚,jquery只是一个javascript的工具库,而vue,是一款伟大的MVVM前端框架。

    首先,新建一个html文件出来,然后添加下面的代码

<script src="https://unpkg.com/vue/dist/vue.js"></script>

    好了,我们可以使用Vue了,第一件事,当然是打开Vue的API使用指南啊,看一眼,这个竟然有中文版的,好嘞,花个三十分钟左右的时间把基础的代码撸一遍。

    下面是我撸的代码,简单注释已经加好:

<!DOCTYPE html>
<html>
<head>
	<title>Vue demo</title>
	<script src="./vue.js"></script>
</head>
<body>
<div id="app">
	{{message}}
</div>
<div id="app-2" v-bind:title="message">
	<span>
		Hover your mouse over me for a few seconds to see my dynamically bound title!
	</span>
</div>
<dir id="app-3">
	<p v-if="seen">Now you can see me</p>
</dir>
<div id="app-4">
	<ol>
		<li v-for="todo in todos">
			{{todo.text}}
		</li>
	</ol>
</div>
<div id="app-5">
	<p>{{message}}</p>
	<button v-on:click="reverseMessage">Reverse Message</button>
</div>
<div id="app-6">
	<p>{{message}}</p>
	<input v-model="message">
</div>
<div id="app-7">
	<ol>
		<todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item>
	</ol>
</div>
</body>
<script type="text/javascript">
<!-- 声明式渲染 -->
var app = new Vue({
	el: ‘#app‘,
	data: {
		message: ‘My first vue app‘
	}
});
var app2 = new Vue({
	el: ‘#app-2‘,
	data: {
		message: ‘You load this page on ‘ + new Date()
	}
});
<!-- if条件判断 -->
var app3 = new Vue({
	el: ‘#app-3‘,
	data: {
		seen: true
	}
});
<!-- for循环 -->
var app4 = new Vue({
	el: "#app-4",
	data: {
		todos: [
			{text: ‘Learn javascript‘},
			{text: ‘Learn Vue‘},
			{text: ‘Build something awesome‘}
		]
	}
});
<!-- 处理用户输入 -->
var app5 = new Vue({
	el: ‘#app-5‘,
	data: {
		message: ‘Hello Vue.js‘
	},
	methods: {
		reverseMessage: function() {
			this.message = this.message.split(‘‘).reverse().join(‘‘)
		}
	}
});
var app6 = new Vue({
	el: ‘#app-6‘,
	data: {
		message: ‘Hello Vue!‘
	}
});
<!-- 组件的使用 -->
Vue.component(‘todo-item‘, {
	props: [‘todo‘],
	template: ‘<li>{{todo.text}}</li>‘
});
var app7 = new Vue({
	el: ‘#app-7‘,
	data: {
		groceryList: [
			{text: ‘Vegetables‘},
			{text: ‘Cheese‘},
			{text: ‘Whatever else humans are supposed to eat‘}
		]
	}
});
</script>
</html>

整体的页面显示效果如下:

    在这里,有一个Vue中非常重要的概念——组件。因为它提供了一种抽象,让我们可以用独立可复用的小组件来构建大型应用。如果我们考虑到这点,几乎任意类型的应用的界面都可以抽象为一个组件树:

    在 Vue 里,一个组件实质上是一个拥有预定义选项的一个 Vue 实例:

Vue.component(‘todo-item‘, {
  template: ‘<li>This is a todo</li>‘
})

    现在你可以另一个组件模板中写入它:

<ol>
  <todo-item></todo-item>
</ol>

    但是这样会为每个 todo 渲染同样的文本,这看起来并不是很酷。我们应该将数据从父作用域传到子组件。让我们来修改一下组件的定义,使得它能够接受一个 prop 字段:

Vue.component(‘todo-item‘, {
  props: [‘todo‘],
  template: ‘<li>{{ todo.text }}</li>‘
})

    现在,我们可以使用 v-bind 指令将 todo 传到每一个重复的组件中:

<div id="app-7">
  <ol>
    <todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item>
  </ol>
</div>
Vue.component(‘todo-item‘, {
  props: [‘todo‘],
  template: ‘<li>{{ todo.text }}</li>‘
})
var app7 = new Vue({
  el: ‘#app-7‘,
  data: {
    groceryList: [
      { text: ‘Vegetables‘ },
      { text: ‘Cheese‘ },
      { text: ‘Whatever else humans are supposed to eat‘ }
    ]
  }
})

    这只是一个假设的例子,但是我们已经将应用分割成了两个更小的单元,子元素通过 props 接口实现了与父亲元素很好的解耦。我们现在可以在不影响到父应用的基础上,进一步为我们的 todo 组件改进更多复杂的模板和逻辑。

    从代码上面来看,还是标准的javascript写法,只是定义了Vue这个对象,进行的所有操作都是通过Vue这个对象来实现的,这一部分的代码简单介绍了Vue的使用,相信大多数的项目中使用最多还是这些数据绑定,判断循环,用户输入,绑定事件。

    不过话说回来,我们为什么要使用Vue?各位看官自行百度一下去吧,我这里不吹不黑,只是一个简单的上手系列文章,由浅入深,跟着官方指南走,加入一些我自己的理解,欢迎各位看官拍砖。

参考资料:

Vue.js操作指南

时间: 2024-09-30 15:53:50

Vue从零开始(一)的相关文章

从电商页面埋点说起

背景 互联网发展到现在,数据的重要性已经不需要再多的强调,那如何做好数据搜集的工作则是每一家公司都要面临的问题.尤其是像天猫.京东.寺库这样的电商公司,数据的统计可以提升用户购买的用户体验,可以方便运营和产品调整销售策略等等.可见页面埋点多么重要.今天就让我们从无到有制作一个埋点上报工具. 主要内容: 什么是埋点 埋点原理 埋点的种类 电商页面前端埋点规范 封装一个异步请求 IntersectionObserver -新一代元素观察接口 基于VUE从零开始封装一个前端数据埋点工具 后端日志格式(

vue-用Vue-cli从零开始搭建一个Vue项目

Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可.本文用Vue-cli从零开始搭建一个Vue项目. 准备工作 1.下载安装Node.js 下载地址:https://nodejs.org/en/download/ ,选择合适自己的版本下载即可

从零开始:一个正式的vue+webpack项目的目录结构是怎么形成的

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 如何从零开始一个vue+webpack前端工程工作流的搭建,首先我们先从项目的目录结构入手.一个持续可发展,不断加入新功能,方便后期维护的目录结构究竟是长什么样子的?接下来闰土大叔带你们一起手摸手学起来. 初级前端初始化目录篇 项目伊始,我们肯定是先在terminal终端命令行(以下简称terminal)cd进入<project name>根目录,然后输入 npm init 初始化

从零开始学 Web 之 Vue.js(三)Vue实例的生命周期

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.vue实例的生

从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.Vue发送Aj

从零开始编写一个vue插件

title: 从零开始编写一个vue插件 toc: true date: 2018-12-17 10:54:29 categories: Web tags: vue mathjax 写毕设的时候需要一个mathjax编辑器,因此直接写一个插件试一下. 准备账号 进入npm注册账号 初始化项目 vue init webpack-simple mathjax-toolbar cd mathjax-toolbar npm install 得到的项目内的/src结构如下: src/ ├── assets

从零开始学习Vue.js,学习笔记

一.为什么学习vue.js methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/v2/api/ 二.vue.js是什么 Vue是一个"MVVM框架(库)",和angular类似,相比angular小巧,比较容易上手 Vue是一个构建用户界面点的渐进式框架,与其他重量级框架不同的是,vue采用自底向上

从零开始系列之vue全家桶(3)安装使用vuex

什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. 中大型单页应用必备. 小型单页应用完全可以不用. 安装: 1.cd 项目  (如cd my-vue)后,输入 cnpm install vuex --save 2.在src下新建一个名叫store的文件夹,与App.vue同级,并在文件夹下新建store.js文件.因为store.js是基于vue的

从零开始系列之vue全家桶(4)带新手小白一起搭建第一个个人网站项目

未经允许,严禁转载,全文由blackchaos提供. 在安装好了前面大部分需要的插件,我们开始进行第一个个人项目.结合vue+vuex+vue-cli+vue-router+webpack使用. 1.我们先写用vue-router来单页面切换路由.先进入src文件夹.在components文件夹下创建五个文件分别是Home.vue,About.vue,Contact.vue,MyHeader.vue,Myfooter.vue. 将router里的index.js打开.修改代码为: import