美文网首页
Vue.js小白速成手册01

Vue.js小白速成手册01

作者: 剽悍一小兔 | 来源:发表于2020-06-30 22:29 被阅读0次

1,下载一个好用的IDE

建议安装visual Studio Code,下载地址:https://code.visualstudio.com/


安装完毕之后,还需要安装两个vue的扩展包,后面会用到:
1.vetur
2.vue vscode snippets
在这里搜索这两个扩展程序,安装一下就好了。

2,快速上手Vue:做点东西出来

随便找个地方,创建一个叫做project的文件夹,文件夹里面放一个vue.js,这个是vue的核心文件,你可以网上去下载,或者直接用本教程给出的资源包。


好了以后打开VSCODE,导入这个文件夹,作为一个新项目。步骤是: File -- Open Folder



导入成功后,点这个:



创建一个新的文件,就叫做index.html

在这个html文件中,打一个感叹号,自动提示的,用第一个快速生成文件结构。



没错,一下子就这样了。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
步骤1,通过script引入vue
<script src="vue.js"></script>
步骤2,创建宿主元素div
<div id="app"></div>
步骤3,用vue去控制宿主元素

简单来说就是创建一个vue实例,从此可以去控制刚才的div

    <script>
        new Vue({
            el:'#app',
        });
    </script>

#app是ID选择器,这样一来,vue就和那个div建立了密不可分的联系。

步骤4,理解一下MVVM

上面是MVVM呢,就是Model(模板)+View(试图)+ModelView(模板引擎)。现在,我在div里面写一点东西,就画一个按钮吧。

<div>
    <button>{{buttonLabel}}</button>
</div>

注意,buttonLabel是被 双大括号 括起来的,这代表上面这段HTML代码是一个模板。刚才我们不是引入了vue.js吗?而且还创建了一个vue实例,通过id=app 做了宿主元素的控制。

于是,vue内部会做一些事情,什么事情呢?就是会把一个叫做app的div全部解码,封装为一个js函数!听起来不可思议,但是它就是这样运作的。有人可能会问,为什么要这样做呢?如果你想要去改变按钮的文字,用document.getElementById就可以了,改一下innerHTML的事情,多简单啊。

是的,用dom操作完全可以实现,但是MVVM的思想就是让数据来驱动视图。既然我们可以把整段HTML变成一个js函数,那么自然也可以通过里面某些变量的改变,去重新渲染这个函数,得到视图的实时变化!这样的好处就是,我们可以不必去关心DOM操作,而是只关心数据就行了。

OK,继续,为了绑定buttonLabel,我们需要把这个数据在vue中定义一下。这边用代码提示,写一个vdata,用第一个快捷提醒。



代码如下:

new Vue({
    el:'#app',
    data() {
        return {
            buttonLabel: '早起'
        }
    },
});

页面效果:


这个操作叫做Vue的响应式数据绑定,我们来一张图:

Vue的主要作用就是MVVM中的VM。什么叫响应式呢,就是data里面的数据变了,视图层也会发生变化。如果某种情况下视图层里的数据变了,也会反作用于data,这是相互的。

3,Vue核心语法

这一节介绍Vue的核心语法。

3.1 插值语法

插值语法是最简单的,就是像上面那样,用双大括号括起来一个数据,同时让这个数据在vue里面的data中去定义就行了。在HTML元素中,如果要绑定属性,就在原有属性的左边加一个冒号即可,像这样:

<div>
    <button :title="buttonLabel">{{buttonLabel}}</button>
</div>

注意,如果属性左边加上了冒号,那么双引号里面的内容就是纯粹的JS表达式了,它并不是一个静态值哦!这个就是插值语法,很简单吧。

3.2 循环语法

刚才的案里中,我们只有一个按钮,现在思考一个问题,假如我有多个按钮怎么办呢?我们能不能定义一个数组,然后数组里面有多少个元素,页面就显示多少个按钮?比如,我们在data里面设置一个变量buttons。

buttons:['早睡','早起','写日记','跑步半小时']

页面上就这么写:

<button v-for="button in buttons" :title="button">{{button}}</button>

效果:



可以看到,几个按钮被成功渲染出来了。button是每次拿出的单个元素,buttons就是定义在data中的数组。注意,当你用v-for去做数组遍历的时候,一定要加上一个key属性,代表每一个项的ID。因为现在的数组比较简单,就是一个单值,所以我们就这样写了。

<button v-for="button in buttons" :key="button" :title="button">{{button}}</button>

button只是一个别名哦,你也可以写成item,随便你。emmm,是不是有点丑,我们稍微做一下美化。美化html元素,当然就少不了css了,为了方便起见,我们直接用style就行了。

<button 
style="margin: 4px; border: none; font-size: 12px; padding: 4px 10px; color: #353535; background: #dbdbdb;" 
v-for="button in buttons" 
:key="button" 
:title="button">{{button}}
</button>

效果:


3.3 输入绑定

现在数组buttons是写死的,我们不希望它写死,希望能够让用户去手动添加按钮。于是,我们非常熟练地写了一个input框。

<input />

够简单不?
哈哈哈。
我们随便在input框里面输入一些内容,希望按一下回车,就把这些内容变成一个按钮,追加在下面。你打算怎么做呢,是不是手中 锋利的jquery 已经蠢蠢欲动?


打住,亲!
我们是vue教程,给我个面子好不啦。在vue中,我们已经不用去关心dom操作啦,只需要关心数据如何绑定就行了。简单来说,你不就是想要input框里面的内容吗?想一个名字,就叫buttonName吧,放到data里面。
new Vue({
    el:'#app',
    data() {
        return {
            buttonName: "",
            buttons:['早睡','早起','写日记','跑步半小时']
        }
    },
});

问题来了,你写个buttonName在data里面算怎么回事?当然还差一步啊,你需要使用v-model去input里面绑定buttonName。这样一来,input只要发生值变化事件,data里面的buttonName就会跟着变。我就不演示啦,反正这个知识点网上铺天盖地都是,懒得验证了,就是这样啊喵。



上代码:

<input v-model="buttonName" />

没错,这就完了,简单不?
OK,然后我们要敲回车,得到input框里面输入的内容哦。敲回车,这是一个事件,硬件里头叫中断,软件里头叫做事件,Event。JS的事件,是on一个事件名来做的。vue里面你就直接简写吧,不要v-on了,没啥意思,一般都是@一下。上代码:

<input v-model="buttonName" @keydown.enter="add" />

@keydown是监听键盘按下事件,后面的.enter是vue的修饰符,代表按下的按键是enter键。后面双引号里面的是JS表达式,这里对应的是vue对象中的某一个方法。vue对象的方法,我们需要一个methods区域,哎,我也不会讲,直接看代码吧,相信聪明的你一看就懂!

    methods: {
        add(){
           this.buttons.push(this.buttonName);
           this.buttonName = ''; //清空输入框 
        }
    },

只要是data里面的数据,在vue对象的内部,我们都可以使用 this. 的方法直接调用哦,亲!
用vue写页面的好处就是,很清晰,你很清楚自己定义的变量在什么位置,还有调用的方法在什么地方?看看效果吧!



vue其他的修饰符还有很多,我这边就不多做介绍了,反正以后都是用UI,正常情况下,也很少自己去写底层的一些东西。无所谓啦。

相关文章

  • Vue.js小白速成手册01

    1,下载一个好用的IDE 建议安装visual Studio Code,下载地址:https://code.vis...

  • 做销售80%靠耳朵,20%靠嘴巴!分析很透彻!

    销售速成手册 每天一个销售故事,记录小白销售成长 印记。 有80%的销售员都认为销售最关键的就是嘴巴会说话,所以一...

  • 小白成长记

    再谈小白快速成长,是觉得自己并没有参透这篇文章,原文在这 小白如何快速成长?[http://mp.weixin.q...

  • Anaconda速成手册

    安装 安装包下载地址,分为Python2和Python3版本,无特殊需求建议安装Python3版本 将anacon...

  • requests速成手册

    说明:个人学习python用。操作系统:window10 x64IDE:Pycharm 2017.2.2Pytho...

  • Vue.js完全自学手册

    阿里云大学免费课程:Vue.js完全自学手册 Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue....

  • 1010 富人思维

    01 打破固有思维 我有一个笔记本,封面写着《百万富翁速成手册》,长投公号活动的参与奖励,拿它来作投资学习记录。先...

  • 11.9 Allen在QDTMC的分享

    头马快速成长公式:E=M³C³ (Excellence优秀= Manuel手册✘Meeting会议✘Mentor馒...

  • pycharm----速成手册

    很多学习了python的朋友,在一段时间后,逐步接触到pycharm编译器,但由于第一次使用,有一种无从下手的感觉...

  • Numpy速成手册(三)

    说明:个人学习记录,仅供参考。操作系统:window10 x64IDE:Pycharm 2017.2.2Pytho...

网友评论

      本文标题:Vue.js小白速成手册01

      本文链接:https://www.haomeiwen.com/subject/qpvwxktx.html