一、Vue

我!作为初学者,既然要将Vue,那我一定要介绍一下他是什么?我们可以应用一下官方的话 vue的介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

由此可见,Vue是一个能让你快速将数据转化为可视化试图的框架。真是我这种不会写界面的福音啊!!

ps:根据官网描述,vue的学习是要在你会前端三剑客的前提下学的,没有学的,尤其是后端开发的人,还是先去过一遍吧。vue的学习前提

1.1 Vue安装

Vue的安装主要有两种,一种是通过<script>标签引入Vue的js文件,还有另外一种是使用npm去安装,后续在.vue文件里面去写vue的代码。

作为初学者的我,即便我会使用nodejs和npm,但奈何尚硅谷的教程是前者,所以我选择记录前者学习Vue的整体过程

所以,如果你想跟着我一起学习,请用以下方式:script标签引入

二、我的N个Vue实例

众所周知,所有语言的入门都是从“Hello world”学起,那么我也选择用我第一个Vue对象去创建一个"Hello world"出来

ps:如果你已熟悉“一”中的内容,请创建好一个html文件,并且用script标签引入vue的js文件

对于创建Vue选项,官网并没有针对于初学者有良好的引入,至少我第一次看文档的时候是蒙圈的:“这个东西咋用?”

对此,可以根据尚硅谷的课程简单入个门,当然也可以阅读他的相关代码或者demo示例。

我用以下代码来展示vue的基本用法:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://v2.cn.vuejs.org/js/vue.js"></script>
<title>梦开始的地方</title>
</head>
<body>
<div id="root"> </div>
</body>
<script type="text/javascript">
new Vue({
el:"#root", //绑定元素,el的属性值可以是dom节点也可以是css选择器
data:{
words:"Hello world" //这是可以存放用于展示的数据
}
})
</script>
</html>

在以上简单的代码中,看到vue.js的引入给我们带来了Vue的类,并且我用new创建了Vue的实例对象,Vue的构造器接收一个object对象

作为初学者,我应该知道两个重要的属性

前者用于绑定dom节点,后者用于存放数据方便展示

2.1 Vue的插值语法

既然代码基础我写好了,那我可要尝试去用用数据在页面上展示咯

根据文档的 插值语法相关事例

2.1.1 文本

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://v2.cn.vuejs.org/js/vue.js"></script>
<title>梦开始的地方</title>
</head>
<body>
<div id="root">
<h1>{{words}}</h1>
</div>
</body>
<script type="text/javascript">
new Vue({
el:"#root", //绑定元素,el的属性值可以是dom节点也可以是css选择器
data:{
words:"Hello world" //这是可以存放用于展示的数据
}
})
</script>
</html>

"{{}}"在这个表达式里面可以写js的表达式,并且它里面的执行语句的this是vue实例,同时vue官方文档指出,在data中配置的东西最后都会通过数据代理的方式挂在到vue实例上。

也就是说可以写{{1+1}},{{words.split(" ").join(",")}}等。但不推荐将{{}}表达式写的过长,尽量一行搞定。

这样看似好像无用,但当你修改words值得时候,dom节点相关内容也要跟着绑定,不信你可以试试~

2.1.2 属性绑定

同样的道理,写上基本的代码结构,根据官方文档的介绍我们可以使用以下形式去做属性绑定

<dom v-bind:key="value"></dom>

可以在要绑定的属性值前面加上"v-bind",然后然后在值里面可以写js表达式

具体实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://v2.cn.vuejs.org/js/vue.js"></script>
<title>梦开始的地方</title>
<style>
input{
width: 200px;
height: 20px;
}
</style>
</head>
<body>
<div id="root">
<!-- 这里是插值语法 文本 的节点 -->
<h1>{{words}}</h1>
<!-- 这个是插值语法 属性绑定 的节点 -->
<input type="text" v-bind:value="sentence" />
</div>
</body>
<script type="text/javascript">
new Vue({
el:"#root", //绑定元素,el的属性值可以是dom节点也可以是css选择器
data:{
words:"Hello world", //这是可以存放用于展示的数据
sentence:"The world is beatiful for you."
}
})
</script>
</html>

从上述代码来看,当在“value”属性值前面加上了“v-bind”之后,""的作用就等同意{{}},在{{}}能写啥,双引号里面也能写啥(js表达式)

2.1.3 事件绑定

除了“v-bind” 允许你对dom节点的属性绑定之外,vue还允许你对于事件,例如“click” 进行绑定

但是,绑定的方法不能在写到data配置项!!!

在vue配置中,可将方法配置在methods中,实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://v2.cn.vuejs.org/js/vue.js"></script>
<title>梦开始的地方</title>
<style>
input{
width: 200px;
height: 20px;
}
</style>
</head>
<body>
<div id="root">
<!-- 这里是插值语法 文本 的节点 -->
<h1>{{words}}</h1>
<button v-on:click="changeWords">change</button>
</div>
</body>
<script type="text/javascript">
new Vue({
el:"#root", //绑定元素,el的属性值可以是dom节点也可以是css选择器
data:{
words:"Hello world", //这是可以存放用于展示的数据
},
methods:{
changeWords(){ //实现一个changeWords方法
this.words = "Hello Vue!";
}
}
})
</script>
</html>

在以上代码中,当我按下“change”按钮时,h1标签内容会因为words属性改变而改变,此外v-on所绑定的click在双引号内部也可以写js表达式,methods和data的数据一样都是挂在到vm实例上,能够直接索引到。

三、拓展

最后呢,我根据文档(或者尚硅谷的视频)遇到一个比"v-bind"更好用的语法

对于v-bind来说,如2.1.2中的例子,我们对data内部的sentence进行修改,input输入框内容会一起改变这没问题,这实现了数据的绑定

但如果我想要修改输入框的内容,让data的sentence也跟着变化,v-bind做不到,所以文档中有另外一个方式v-model

简单来说它实现了数据和dom的双向绑定,只要有一个改变了另外一个会跟着改变

有趣的例子

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://v2.cn.vuejs.org/js/vue.js"></script>
<title>梦开始的地方</title>
<style>
input{
width: 200px;
height: 20px;
}
</style>
</head>
<body>
<div id="root">
<!-- 这里是插值语法 文本 的节点 -->
<h1>{{words}}</h1>
<!-- 这个是插值语法 属性绑定v-model示例 的节点 -->
<input type="text" v-model:value="words" />
</div>
</body>
<script type="text/javascript">
new Vue({
el:"#root", //绑定元素,el的属性值可以是dom节点也可以是css选择器
data:{
words:"Hello world", //这是可以存放用于展示的数据
}
})
</script>
</html>

在这个代码中,input的内容改变,h1标签会跟着改变

如此,vue还真的有趣啊~

本篇结束!!!!

四、The more

关于v-bind和v-on的缩写


前往下一节:零基础入门Vue之窥探大法——计算与侦听

零基础入门Vue之梦开始的地方——插值语法的更多相关文章

  1. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  2. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  3. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  4. 【JAVA零基础入门系列】Day11 Java中的类和对象

    今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...

  5. 【JAVA零基础入门系列】Day12 Java类的简单应用

    俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...

  6. 【JAVA零基础入门系列】Day14 Java对象的克隆

    今天要介绍一个概念,对象的克隆.本篇有一定难度,请先做好心理准备.看不懂的话可以多看两遍,还是不懂的话,可以在下方留言,我会看情况进行修改和补充. 克隆,自然就是将对象重新复制一份,那为什么要用克隆呢 ...

  7. 零基础入门微信小程序开发

    注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...

  8. Siki_Unity_1-1_Unity零基础入门_打砖块

    1-1 Unity零基础入门 打砖块 任务1:素材源码 www.sikiedu.com/course/77 任务2:Unity介绍 王者荣耀,球球大作战等游戏都是用unity开发的 跨平台的游戏引擎 ...

  9. 零基础入门 实战mpvue2.0多端小程序框架

    第1章 课程快速预览(必看!!!)在这一章节中,老师讲带领你快速预览课程整体.其中,涉及到为什么要做这么一门实战课程.制作一个小程序的完整流程是怎么样的,以及如何做项目的技术选型. 第2章 30 分钟 ...

  10. 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本

    作者 | Jeskson 来源 | 达达前端小酒馆 从零基础入门MySQL数据库基础课 数据的概念,简介,安装与配置,Windows平台下MySQL的安装与配置. 数据库的概念:数据库是一个用来存放数 ...

随机推荐

  1. 什么是 Serverless 架构?

    随着时间的推移,Serverless 架构变得越来越火热,凭借着极致弹性.按量付费.低成本运维等特性,在很多领域发挥着越来越重要的作用:机器学习领域在近些年也非常火热,并在越来越多的行业中得到应用. ...

  2. localstorage、sessionstorage 存储布尔值要注意

    今天实现一个功能,点击首页,头部按钮,切换大屏功能.不同的屏,页头宽度不一样,小屏1280px,  大屏百分百屏幕,左右留点120px的padding值. 思路:点击按钮,切换不同的子路由,顶部通过一 ...

  3. chage详解:liunx账户密码过期时处理

    公司安装elasticSearcher7.10.2版本时提示账户密码过期,可以做以下的处理方式: 一.查看账户的使用情况 chage -l baikang [root@localhost ~]# ch ...

  4. spring--AOP通知类型有哪些

    Spring AOP(Aspect-Oriented Programming,面向切面编程)提供了五种类型的通知(advice),这些通知定义了切面(aspect)是在目标对象的方法执行的哪个点被应用 ...

  5. 基于html+javascript开发的base64解码工具

    base64在线解码工具可以帮助你将Base64编码的字符串解码为原始的文本或数据. 预览入口 以下是一个简单的base64在线解码工具的示例: html <!DOCTYPE html> ...

  6. ABP微服务系列学习-搭建自己的微服务结构(二)

    在解决方案根目录添加common.props,这个文件的作用是可以配置项目文件全局的一些属性,如忽略警告,全局PackageReference,语言版本等. <Project> <P ...

  7. SqlSugar DbContext

    title: SqlSugar DbContext date: 2023-02-16 20:01:41 tags: SqlSugar categories: ORM description: 总结整理 ...

  8. [转帖]jdbc连接mysql设置session variables 参数变量

    目录 两种方式 连接串设置[^1] 执行语句中设置 两种方式 url连接串中设置 执行语句中设置 连接串设置1 sessionVariables jdbc.url=jdbc:mysql://xxxx. ...

  9. [转帖]ext4的fsync性能和nodelalloc参数的分析

    原文:http://blog.thinksrc.com/?p=189001 感叹归感叹,发泄完了还得继续过. 前几天忙的不可开交,周报上面竟然能列出11项,想想以前在T公司时候的清闲,现在的老板的真幸 ...

  10. ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包

    ChatGPT学习之_shell脚本一例-查找版本冲突的第三方jar包 背景 自从换了Java后 产品里面用到了非常多的第三方组建,也就是很多jar包. 产品内的研发规范要求, jar包不能带版本号和 ...