零基础入门Vue之梦开始的地方——插值语法

一、Vue

原文地址:零基础入门Vue之To be or not to be------条件渲染

我!作为初学者,既然要讲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的基本用法:

html 复制代码
<!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 文本

html 复制代码
<!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 属性绑定

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

html 复制代码
<dom v-bind:key="value"></dom>

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

具体实现代码如下:

html 复制代码
<!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中,实现代码如下:

html 复制代码
<!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的双向绑定,只要有一个改变了另外一个会跟着改变

有趣的例子

html 复制代码
<!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之窥探大法------计算与侦听

相关推荐
匹马夕阳1 小时前
Vue 3中导航守卫(Navigation Guard)结合Axios实现token认证机制
前端·javascript·vue.js
你熬夜了吗?1 小时前
日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
前端·vue.js·信息可视化
沈梦研8 小时前
【Vscode】Vscode不能执行vue脚本的原因及解决方法
ide·vue.js·vscode
轻口味9 小时前
Vue.js 组件之间的通信模式
vue.js
fmdpenny11 小时前
Vue3初学之商品的增,删,改功能
开发语言·javascript·vue.js
涔溪12 小时前
有哪些常见的 Vue 错误?
前端·javascript·vue.js
亦黑迷失14 小时前
vue 项目优化之函数式组件
前端·vue.js·性能优化
计算机-秋大田14 小时前
基于SpringBoot的高校教师科研的设计与实现(源码+SQL脚本+LW+部署讲解等)
java·vue.js·spring boot·后端·课程设计
eason_fan14 小时前
分析vue3源码23(异步组件实现)
vue.js·前端框架·源码阅读
BigData-017 小时前
vue视频流播放,支持多种视频格式,如rmvb、mkv
前端·javascript·vue.js