深入快三平台北京赛车平台出租/搭建浅出学Vue开发

Vue对移动端和浏览器版本的支持

因为Vue本身使用快三平台北京赛车平台出租/搭建Q1619668668浅了ECMAScript 5 特性,所以Vue支持所有兼容ECMAScript 5 的浏览器。我们根据下面的图示来解释一下,

红色表示为几乎不支持 
黄色表示为大部分支持 (有很小的可能会影响使用) 
绿色表示为几乎全部支持(不影响使用)

由上面的图示可以看出来对IE来说,在IE8及其以下的时候,是不支持ECMAScript 5 的,也就是说,是无法使用Vue的。我们看一下对IE8的描述。

IE8几乎没有ES5支持,仅支持对字符串的Object.defineProperty,Object.getOwnPropertyDescriptor,JSON解析和属性访问

所以说对使用了ECMAScript 5 特性的Vue来说,是没有办法在IE8及以下使用的。IE8作为天坑的分界线,其实是一直被大家所诟病的,那么IE9呢? 我们从图示中可以看出,IE9的背景为黄色,也就是说大部分支持。那么不支持的部分是哪些呢? 我们来看一下。 

我们可以看到,对IE9来说,它不支持 严格模式 。这对我们使用Vue的影响就已经很小了。所以说我们可以在IE9及以上可以安全的使用Vue。

而对于其他的浏览器和移动端来说,对ECMAScript 5的支持还是非常不错的。chrome和Firefox都对ECMAScript 5早早的提供了支持。而IOS6和Android4.4以上也都对ECMAScript 5的支持非常完善了,也就是说我们可以在这些浏览器上面放心的使用Vue。

如果大家对这些数据比较感兴趣,也可以点击这里,自己来看一下。我们这里就不在过度赘述了。

如何初始化一个Vue的项目

然后我们来看一下,我们应该如何去初始化一个Vue的项目。

引入Vue的方式主要用两种:

1、直接通过 <script> 标签引入 
2、通过NPM的方式引入

我们分别看一下这两种引入方式应该如何去做,然后再去把它们做一些对比。

我们先来看一下第一种,我们如何通过 <script>标签来引入Vue。

1、通过 <script>标签引入Vue

目前Vue最新的稳定版本为2.5.16,我们可以直接把Vue编译之后的代码下载到我们的本地,然后在我们本地通过<script>标签引入,也可以直接通过cdn的方式来引入Vue。具体方法如下:

// 开发版本,包含完整的警告和调试模式。
// 下载地址:https://vuejs.org/js/vue.js
<script src="vue.js"></script>

// 生产版本,删除了警告,30.90KB min+gzip。
// 下载地址:https://vuejs.org/js/vue.min.js
<script src="vue.min.js"></script>

// CDN引入方式,版本号为2.5.16。
// 你也可以直接通过 https://cdn.jsdelivr.net/npm/vue/ 这个地址来查看Vue的源码
// 如果你想要引入生产版本的话,那么只需要把最后的vue.js改为vue.min.js
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

我们通过这种方式来引入我们的Vue,然后就可以在.js文件或者.vue文件(需要对.vue文件进行解析,比如使用vue-loader)中直接使用Vue的语法了。

2、通过NPM的方式引入

第二种方式为通过NPM来直接引入。对于NPM,大家如果有过前端开发经验的话,那么应该都已经不陌生了。NPM作为在前端被广泛使用的包管理工具,Vue自然也是需要提供支持的。我们可以直接使用

npm install vue

1

来去安装Vue的最新版本。

3、两种方式的对比

Vue的官网推荐我们在使用Vue去构建大型项目的时候,使用NPM的方式来去安装。但是说的却并不是很详细。我们先来看一下官网的说法

在用 Vue 构建大型应用时推荐使用 NPM 安装。NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件。

我们把官网的意思进行一下解释:上面的意思说,我们之所以推荐使用NPM的方式来安装Vue。是因为:

1、使用NPM的方式可以更好的配合模块打包器(webpack或者Browserify) 
2、可以更方便的使用单文件组件(.vue文件)

上面两点就是推荐使用NPM方式的原因。关于模块打包器(Webpack)和单文件组件(.vue文件),我们会在后面的章节去给大家详细讲解,如果大家现在就想对Webpack或者单文件组件进行详细了解,也可以点击链接到它们的官网来详细了解。我们在这里只去大概的说一下,目的是让大家更清楚的了解Vue引入方式的区别。

我们一般在去使用Vue来构建大型项目的时候,通常会通过npm + vue-cli + webpack的方式来去进行项目初始化。

1、我们需要安装好npm,可以直接在https://nodejs.org/zh-cn/,这里下载最新的node版本。 
2、然后我们使用:npm install -g vue-cli 指令来去下载最新的vue-cli 
3、然后我们通过vue init <template-name> <project-name>这种方式来去初始化我们的项目,<template-name>为我们使用的模块打包器,<project-name>为我们的项目名称,比如我们可以通过 vue init webpack my-project 来去通过webpack构建一个名字叫做my-project的项目。

一路回车之后,我们就可以得到一个使用npm + vue-cli + webpack构建出的项目了,我们看一下项目的结构

├── README.md
├── build
├── config
├── index.html
├── node_modules
├── package.json
├── src
├── static
└── test

我们在package.json文件下,可以看到一个dependencies:{"vue": "版本号"},这个vue就是我们通过NPM来引入的Vue。在我们的src文件夹下面也已经生成了.vue的单文件组件。

我们可以直接通过npm run dev的方式来去本地运行这个项目,也可以通过npm run build来去对这个项目进行打包。

那么是不是通过npm + vue-cli + webpack方式来生成的项目就不能通过<script>标签的形式来去引入vue了呢?显示不是的。

我们通过NPM引入的vue,在我们项目执行打包的时候,会被打包到我们的可执行文件之中,在我们通过浏览器去访问我们的项目的时候,浏览器就会访问我们项目所部署的服务器中的vue文件。而如果我们的服务器的带宽并不高的话(特别是一些个人的服务器,经常只有1M的带宽)。这个时候我们就要尽量的避免我们服务器中的流量流出。

在这种情况之下,我们去使用<script>标签的形式在CDN中去引入vue,不失为是一个好的选择,比如我们可以在项目的index.html文件中,通过<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script> 这种方式来去引入vue,从而尽量减少我们服务器的压力。

就像我们在导读中说的:我们选择什么样的工具,取决于我们面对了什么样的问题。没有任何一种工具或者方式是在任何一种情况下都完全适用的。

Vue的代码结构

我们在使用Vue来开发项目的时候,我们的代码一般会写到两种文件之中,他们分别是:

1、非单文件组件(.js文件) 
2、单文件组件(.vue文件)

那么我们通过这两种文件来看一下,我们的Vue的代码结构是什么样子的。

1、非单文件组件(.js文件)

非单文件组件就是我们正常的js文件,大家知道js文件是可以直接被浏览器解析的。我们可以在js文件中,直接通过

<div id="app">
{{ message }}
</div>

var app = new Vue({
el: ‘#app‘,
data: {
message: ‘Hello Vue!‘
}
})

(可以直接新建一个html文件,通过<script>标签的形式引入Vue,然后复制上面的代码,看一下运行的效果)这种方式来去直接生成一个Vue对象,其中的elelement的简写,#app表示id为app的div标签,意思为id为app的<div>标签中的所有html内容都将被Vue解析。而data对象则是我们在Vue中生成的数据集,当我们去修改message的内容的时候,我们div中展示的数据也会随之改变。

大家还记得我们在导读中说过的MVVM模型吗?在这一块代码中

<div id="app">
{{ message }}
</div>

就是我们的View

data: {
message: ‘Hello Vue!‘
}

就是我们的model。

而Vue框架,就是我们的ViewModel,Vue连接了我们的视图和我们的数据,当我们的数据发生改变的时候,我们视图中展示的数据也会发生改变。这种方式在Vue中被称作声明式渲染。

而其他的一些声明也都会被写入到我们的Vue对象之中,比如说:如果我们要在Vue中去定义以下方法,那么则需要使用到methods声明。如下:

var app = new Vue({
el: ‘#app‘,
data: {
message: ‘Hello Vue!‘
},
methods: {
methodsName: function (event) {
...
}
}
});

同样的如果我们要监听Vue的声明周期或者计算属性的话,也同样以这种方式来声明即可。我们会在讲解到这些这些内容的时候,来去给大家详细解释。

2、单文件组件(.vue文件)

第二种方式,也就是通过我们的单文件组件的方式来去使用我们的Vue。这也是官网所推崇的一种方式。大家可以想一下,如果我们的项目足够复杂,那么我们通过上面的方式来去使用Vue,那么我们的js文件得多大啊,同样也非常不利于以后我们的代码维护。那么我们在以前构建项目的时候遇到这种问题,我们一般想到的处理方式是什么?相信大家如果使用过jQuery来开发过完整项目的话,都应该能够想到,那就是模块化,比如我们常用的:AMD、CMD或者ES6 Module的模块化。那么在Vue中的这种模块化方式,我们称它为单文件组件(.vue文件)。

我们先来看一下单文件组件(.vue文件)的文件结构。

<template>
// html
</template>

<script>
// js
</script>

<style>
// css
</style>

每一个.vue文件都会被当成使一个“组件”,每个“组件”中都有其单独的html、css、js。然后我们再把这些“组件”拼装成一个完整的项目(如果大家对这一块不了解,可以去看一下我们在导读中提到的组件化知识)。

使用这种单文件组件(.vue文件)的优势非常明显,它使得我们的项目组件化,因为每个模块的功能都被单独分割,所以我们的代码耦合性 
变得更低,也更利于团队开发和日后维护。(我们会在项目实战中实地展示这种方式的优势)

但是我们知道.vue文件浏览器是无法直接解析的,那么我们就需要使用到一些解析工具把.vue文件解析成浏览器能够看懂的html、css和js文件。干这个事的工具一般为vue-loader(就好像我们去解析.less文件的Koala,不同的是vue-loader并不是一个单独的应用),而我们去使用vue-loader也都会配合webpack来去使用,这也是为什么我们构建正式大型项目的时候,一般都会使用npm + vue-cli + webpack方式的原因之一。

然后我们来看一下,我们在刚才通过npm + vue-cli + webpack来生成的my-project项目。我们通过这个项目来大体的认识一下单文件组件(.vue文件)。

我们分别打开/src/App.vue/src/main.js这两个文件,为了防止过多的代码对大家造成困扰,我把这些代码进行了一些简化。

App.vue

<template>
<div id="app">
<img src="./assets/logo.png">
<p>{{message}}</p>
</div>
</template>

<script>
export default {
data: function () {
return {
message: ‘Hello Vue‘
}
}
}
</script>

<style>
#app {
font-family: ‘Avenir‘, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

main.js

import Vue from ‘vue‘
import App from ‘./App‘

new Vue({
el: ‘#app‘,
components: { App },
template: ‘<App/>‘
})

大家可以把这两部分的代码复制到你们的项目中,然后执行npm run dev,通过浏览器打开http://localhost:8080/#/ 可以看到一个Vue的图标和“Hello Vue”的一串文字。

如果大家可以正常运行,那么我们来看一下这些代码的具体含义。

main.js里面它通过es6的方式引入了vueApp.vue两个文件,然后在初始化Vue的时候,通过el指定最外层的divid为app的<div>,然后指定了App.vue作为Vue的一个组件components,并且给他指定了模板template<App/>

然后在我们的App.vue中,它在<template>标签中,声明了我们的html,在<script>标签中,指定了我们的数据data为{message : ‘Hello Vue‘},在<style>中声明了我们的样式,这就生成了一个完整的组件,然后把这个组件通过es6 module的方式注入到main.jscomponents中。这样的一个循环的过程,就构成了我们的模块化方针。

从下一章开始,我们就会正式进入Vue的学习,我们会依照这个脑图的顺序 

~ 在基础语法部分,我们会通过html+<script>的形式来引入Vue,致力于通过最简单直接的方式,能够让大家对Vue的常用API有一个足够的了解 
~ 在周边生态部分,我们会通过各种实例,来帮助大家去学习Vue的周边生态 
~ 最后我们会通过npm + vue-cli + webpack的方式,通过一个实战项目来让大家把我们本课程所学到的所有内容都整合起来。

原文地址:https://www.cnblogs.com/1985PL/p/9412881.html

时间: 2024-10-05 20:04:08

深入快三平台北京赛车平台出租/搭建浅出学Vue开发的相关文章

java的UDP和TCP详解和北京-赛车平台出租源码分析

1.需求分析北京-赛车平台出租Q1446595067 最近在和硬件做网口的传输协议,一开始告诉我说用TCP的socket进行传输,我说没问题,就写了个socket的发送和接收方法.but过了没一段时间,又告诉我用udp吧,udp传的比较快,就也写了一个udp的.无论是socket还是udp,感觉网上有很多都是写一个监听端口,监听往这个端口发送的数据,然后再写一个发送方法. 2.问题难点本来硬件要是往java端指定端口发,就完全没问题了,但是它是把我发送的数据按照我发的端口号原路返回,就想http

北京赛车平台出租度富文本编辑器UEditor的改造

在Java项目中,做内容管理功能时,需要用到富文本编辑器北京赛车平台出租(www.1159880099.com)QQ1159880099,目前流行的富文本编辑器还是比较多的,因为项目中用的是百度的UEditor,所以对UEditor使用中的一些问题做个总结吧. 因为是Java项目所以使用的是只能选择jsp版本的UEditor,使用方式还是比较简单的,按照UEditor官方的文档来就好了. 首先说下踩过的坑,我项目一开始是用的war部署的方式,大家都知道war部署时是会解压到tomcat的weba

xUtils与FastJson获取和北京-赛车平台出租解析网络数据

发送一个北京-赛车平台出租异步任务就系Json数据 首先打开一个接口,里面是Json数据,通过xUtils框架来发送get请求,得到接口的Json字符串,将字符串用FastJson解析成一个实体类,保存在集合当中在Gradle里面添加库工程 xUtils框架:compile 'org.xutils:xutils:3.3.40' FastJson:compile 'com.alibaba:fastjson:1.1.56.android' (我也不知道为什么显示出来的android是红色大写,应当是

北京赛车平台定制开发分布式之redis复习精讲

1.为什么使用redis 北京赛车平台定制开发[大神源码论坛]dsluntan.com [布丁源码论坛]budingbbs.com 企娥3393756370 分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发.当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis.因此,这个问题主要从性能和并发两个角度去答.回答:如下所示,分为两点(一)性能如下图所示,我们在碰到需要执行

只有程序员北京赛车平台一条龙服务才懂这些黑色幽默!

也是北京赛车平台一条龙服务[大神源码论坛]dsluntan.com [布丁源码论坛]budingbbs.com 企娥3393756370机缘巧合,让我一个之前工作从未接触过程序员的人,现在成天和程序员打交道,要知道,不懂技术,往往他们想和你幽默的搞笑一下,未必能读懂. 都说程序员情商低,不爱说话,比较闷骚.可是,只要你深入的接触下来,会发现这是一群非常可爱的人.他们聪明伶俐.乐于助人.喜欢钻研技术.逻辑性强等等,很多闪光点让我对程序员的印象有了惊人的逆转. 尤其是一些互联网大公司,例如:阿里.京

PHP Socket 吉林快三跨度玩法平台开发编程进阶指南

?Linux吉林快三跨度玩法平台开发[大神源码论坛]dsluntan.com [布丁源码论坛]budingbbs.com 企娥3393756370 或者 Mac 环境:?安装有 Sockets 扩展:?了解 TCP/IP 协议. socket函数只是PHP扩展的一部分,编译PHP时必须在配置中添加 --enable-sockets 配置项来启用. 如果自带的PHP没有编译scokets扩展,可以下载相同版本的源码,进入ext/sockets使用phpize编译安装. socket系列函数 soc

Linux上北京-赛车平台搭建分布式集群

1.下载北京-赛车平台源码搭建 2.通过Xftp将文件传到Linux服务器上 3.使用 命令 tar --zxvf zookeeper-3.4.12 解压 zookeeper 4.配置系统环境变量 vim /etc/profile 执行source /etc/profile 使环境变量立即生效5.进入conf中 复制 zoo_sample.cfg 文件的并命名为为 zoo.cfg 6.同过 vim zoo.cfg 编辑配置文件 编辑前 编辑后 server.A=B:C:D中的A是一个数字,表示这

跳槽面试时不能说北京赛车重庆时时踩源码下载平台出租出售的六大离职理由

夏天过去后,9月北京赛车重庆时时踩源码下载平台出租出售[大神源码论坛]dsluntan.com [布丁源码论坛]budingbbs.com 企娥3393756370又是求职和跳槽的黄金时段,想要跳槽的你需要注意了:"你为什么从上一家公司离职?"面试时这个问题是避无可避的. 什么样的理由才能做到既反映实际情况,又能得到HR认可呢?这六种雷千万不能踩! 一.说公司坏话 面试的时候一直对前公司百般攀扯,说公司管理垃圾,规定苛刻:领导人多么糟糕,对下属如何坏.你必定过不了面试关. 因为HR对你

直播答题助手江苏快三平台出租

"世界杯要搞答题直播江苏快三平台出租Q 1152880099  vx: wowotou552  罔 www.1152880099.com/,搜狐准备了百万奖金." 这是近日搜狐董事局主席兼CEO张朝阳在接受媒体采访时,对外界透露的信息. 从今年年初开始,直播答题一路火爆不减. 然而,在众多平台蜂拥进入直播答题领域时,一些问题也逐渐暴露出来,其中,最受关注的莫过于各种辅助类作弊软件的出现. 就在答题者对"答题助手"还处于爱恨交加之际,一则新闻引爆舆论--"百