一文带你搞懂Vue3的基本语法

目录
  • 1.通过 CDN 使用 Vue3
  • 2.Vue3 模板语法
    • 文本
    • Html
    • 属性
    • 表达式
    • 指令
    • 参数
  • 3.模板用户输入双向绑定

1.通过 CDN 使用 Vue3

你可以借助 script 标签直接通过 CDN 来使用 Vue:

<script src="https://unpkg.com/vue@next"></script>

通过 CDN 使用 Vue 时,不涉及“构建步骤”。这使得设置更加简单,并且可以用于增强静态的 HTML 或与后端框架集成

接下来我们从 Hello Vue!! 的代码开始学起

<div id="hello-vue" class="demo">
    {{ message }}
</div>

<script>
    const HelloVueApp = {
        data() {
            return {
                message: 'Hello Vue!!'
            }
        }
    }
    Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>

mount('#hello-vue') 将 Vue 应用 HelloVueApp 挂载到 <div id="hello-vue"></div> 中

{{ }} 用于输出对象属性和函数返回值

{{ message }} 对应应用中 message 的值

输出:

data 选项是一个函数。Vue 在创建新组件实例的过程中调用此函数。它应该返回一个对象,然后 Vue 会通过响应性系统将其包裹起来,并以 $data 的形式存储在组件实例中

我们可以在组件中添加方法,使用 methods 选项,该选项包含了所需方法的对象。

以下实例我们添加了 methods 选项,选项中包含了 increment() 方法:

<script>
    const HelloVueApp = {
        data() {
            return {
                count: 521
            }
        },
        methods: {
            increment() {
                // this 指向该组件实例
                this.count++
            }
        }
    }
    Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>

2.Vue3 模板语法

Vue 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。

Vue 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。

结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

文本

数据绑定最常见的形式就是使用 {{...}}的文本插值:

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

Html

使用 v-html 指令用于输出 html 代码:

<div id="hello-vue" class="demo">
    <span v-html="rawHtml"></span>
</div>

<script>
    const HelloVueApp = {
        data() {
            return {
                rawHtml: '<span style="color: red">这里会显示红色!</span>'
            }
        }
    }
    Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>

属性

HTML 属性中的值应使用 v-bind 指令

<style>
    .class1 {
        background: #444;
        color: #eee;
    }
</style>

<div id="app">
    <label for="r1">修改颜色</label><input type="checkbox" v-model="use" id="r1">
    <br/><br/>
    <div v-bind:class="{'class1': use}">
        v-bind:class 指令
    </div>
</div>

<script>
    const app = {
        data() {
            return {
                use: false
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

demo:点击按钮可以实现div块变色

表达式

Vue.js 都提供了完全的 JavaScript 表达式支持

例如:

<div id="app">
    算数表达式:{{521 + 1314}}<br/>
    三目表达式:{{ok ? 'YES' : 'NO'}}<br/>
    字符串反转:{{ message.split('').reverse().join('') }}<br/>
</div>

<script>
    const app = {
        data() {
            return {
                ok: true,
                message: 'IMUSTCTF!'
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

浏览器输出:

算数表达式:1835
三目表达式:YES
字符串反转:!FTCTSUMI

指令

指令是带有 v- 前缀的特殊属性。

指令用于在表达式的值改变时,将某些行为应用到 DOM 上。如下例子:

<div id="app">
    <p v-if="seen">现在你看到我了</p>
</div>

<script>
    const app = {
        data() {
            return {
                seen: true /* 改为false,信息就无法显示 */
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

这里, v-if 指令将根据表达式 seen 的值( true 或 false )来决定是否插入 p 元素

另外还有其它很多指令,每个都有特殊的功能。例如,v-for 指令可以绑定数组的数据来渲染一个项目列表:

<div id="app">
    <ol>
        <li v-for="site in sites">
            {{ site.text }}
        </li>
    </ol>
</div>

<script>
    const app = {
        data() {
            return {
                sites: [
                    {text: 'Google'},
                    {text: 'IMUSTCTF'},
                    {text: 'Taobao'}
                ]
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

参数

参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性:

<div id="app">
    <p><a v-bind:href="url">百度网</a></p>
</div>

<script>
    const app = {
        data() {
            return {
                url: 'https://www.baidu.com'
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

在这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定

也可以使用缩写:

<a :href="url"></a>

另一个例子是 v-on 指令,它用于监听 DOM 事件:

<!-- 完整语法 -->
<a v-on:click="doSomething"> ... </a>

<!-- 缩写 -->
<a @click="doSomething"> ... </a>

<!-- 动态参数的缩写 (2.6.0+) -->
<a @[event]="doSomething"> ... </a>

3.模板用户输入双向绑定

在 input 输入框中我们可以使用 v-model 指令来实现双向数据绑定:

<div id="app">
    <p>{{ message }}</p>
    <input v-model="message">
</div>

<script>
    const app = {
        data() {
            return {
                message: 'Dahe'
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值

按钮的事件我们可以使用 v-on 监听事件,并对用户的输入进行响应。

以下实例在用户点击按钮后对字符串进行反转操作:

<div id="app">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">反转字符串</button>
</div>

<script>
    const app = {
        data() {
            return {
                message: 'XIAOQIANWOAINI!'
            }
        },
        methods: {
            reverseMessage() {
                this.message = this.message
                    .split('')
                    .reverse()
                    .join('')
            }
        }
    }
    Vue.createApp(app).mount('#app')
</script>

到此这篇关于一文带你搞懂Vue3的基本语法的文章就介绍到这了,更多相关Vue3基本语法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vue3.2 setup语法糖及Hook函数基本使用

    目录 引言 setup(语法糖) 1.基本使用 2.自动注册 3.组件通信 defineEmit ----> [子组件向父组件事件传递] 代码示列: defineExpose ----> [组件暴露出自己的属性] 代码示列: hook函数 介绍: 示列 : 引言 在2021 年 8 月 5 日,Vue发布了3.2版本的新写法,其中最主要的亮点就在于setup的语法糖,学过Vue3.0的小伙伴都清楚,当我们在使用Vue3的语法就构建组件的时候,总是需要把外面定义的方法变量必须要return出去,

  • 详解Vue中的基本语法和常用指令

    什么是vue.js Vue.js是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Weex) Vue.js 是前端的**主流框架之一**,和Angular.js.React.js 一起,并成为前端三大主流框架! Vue.js 是一套构建用户界面的框架,**只关注视图层**,它不仅易于上手,还便于与第三方库或既有项目整合.(Vue有配套的第三方类库,可以整合起来做大型项目的开发) Vue

  • vue语法之render函数和jsx的基本使用

    目录 h函数的使用 h函数基本介绍 h函数使用流程 h函数案例练习 jsx的体验 jsx的babel配置 jsx计数器案例 h函数的使用 h函数基本介绍 Vue推荐在绝大数情况下使用模板来创建你的HTML,然后一些特殊的场景,你真的需要JavaScript的完全编程的能力,这个时候你可以使用渲染函数,它比模板更接近编译器: 前面我们讲解过VNode和VDOM的概念: Vue在生成真实的DOM之前,会将我们的节点转换成VNode,而VNode组合在一起形成一颗树结构,就是虚拟DOM (VDOM):

  • 一文带你搞懂Vue3的基本语法

    目录 1.通过 CDN 使用 Vue3 2.Vue3 模板语法 文本 Html 属性 表达式 指令 参数 3.模板用户输入双向绑定 1.通过 CDN 使用 Vue3 你可以借助 script 标签直接通过 CDN 来使用 Vue: <script src="https://unpkg.com/vue@next"></script> 通过 CDN 使用 Vue 时,不涉及“构建步骤”.这使得设置更加简单,并且可以用于增强静态的 HTML 或与后端框架集成 接下来我

  • 一文带你搞懂JS中六种For循环的使用

    目录 一.各个 for 介绍 1.for 2.for ... in 3.for ... of 4.for await...of 5.forEach 6.map 二.多个 for 之间区别 1.使用场景差异 2.功能差异 3.性能差异 三.for 的使用 for 循环在平时开发中使用频率最高的,前后端数据交互时,常见的数据类型就是数组和对象,处理对象和数组时经常使用到 for 遍历,因此下班前花费几分钟彻底搞懂这 5 种 for 循环.它们分别为: for for ... in for ... o

  • 一文带你搞懂Numpy中的深拷贝和浅拷贝

    目录 1. 引言 2. 浅拷贝 2.1 问题引入 2.2 问题剖析 3. 深拷贝 3.1 举个栗子 3.2 探究原因 4. 技巧总结 4.1 判断是否指向同一内存 4.2 其他数据类型 5. 总结 1. 引言 深拷贝和浅拷贝是Python中重要的概念,本文重点介绍在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理. 闲话少说,我们直接开始吧! 2. 浅拷贝 2.1 问题引入 我们来举个栗子,如下所示我们有两个数组a和b,样例代码如下: import numpy as np a = np.ar

  • 一文带你搞懂Maven的继承与聚合

    目录 一.继承 二.继承关系实施步骤 三.聚合与继承的区别 一.继承 我们已经完成了使用聚合工程去管理项目,聚合工程进行某一个构建操作,其他被其管理的项目也会 执行相同的构建操作.那么接下来,我们再来分析下,多模块开发存在的另外一个问题,重复配置的问题,我们先来看张图: ■ spring-webmvc.spring-jdbc在三个项目模块中都有出现,这样就出现了重复的内容 ■ spring-test只在ssm_crm和ssm_goods中出现,而在ssm_order中没有,这里是部分重复的内容

  • 一文带你搞懂Spring响应式编程

    目录 1. 前言 1.1 常用函数式编程 1.2 Stream操作 2. Java响应式编程 带有中间处理器的响应式流 3. Reactor 3.1 Flux & Mono 3.2 Flux Mono创建与使用 4. WebFlux Spring WebFlux示例 基于注解的WebFlux 基于函数式编程的WebFlux Flux与Mono的响应式编程延迟示例 总结 哈喽,大家好,我是指北君. 相信响应式编程经常会在各种地方被提到.本篇就为大家从函数式编程一直到Spring WeFlux做一次

  • 一文带你搞懂Java中的泛型和通配符

    目录 概述 泛型介绍和使用 泛型类 泛型方法 类型变量的限定 通配符使用 无边界通配符 通配符上界 通配符下界 概述 泛型机制在项目中一直都在使用,比如在集合中ArrayList<String, String>, Map<String,String>等,不仅如此,很多源码中都用到了泛型机制,所以深入学习了解泛型相关机制对于源码阅读以及自己代码编写有很大的帮助.但是里面很多的机制和特性一直没有明白,特别是通配符这块,对于通配符上界.下界每次用每次百度,经常忘记,这次我就做一个总结,加

  • 一文带你搞懂PHP对象注入

    目录 背景 漏洞案例 PHP类和对象 php magic方法 php对象序列化 序列化magic函数 php对象注入 常见的注入点 其他的利用方法 如何利用或者避免这个漏洞 结论 背景 php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险,为了理解这个漏洞,请读者具备基础的php知识. 漏洞案例 如果你觉得这是个渣渣洞,那么请看一眼这个列表,一些被审计狗挖到过该漏洞的系统,你可以发现都是一些耳熟能详的玩意(就国外来说) WordPress 3.6.1 Magento

  • 一文带你搞懂Golang结构体内存布局

    目录 前言 结构体内存布局 结构体大小 内存对齐 总结 前言 结构体在Go语言中是一个很重要的部分,在项目中会经常用到,大家在写Go时有没有注意过,一个struct所占的空间不一定等于各个字段加起来的空间之和,甚至有时候把字段的顺序调整一下,struct的所占空间不一样,接下来通过这篇文章来看一下结构体在内存中是怎么分布的?通过对内存布局的了解,可以帮助我们写出更优质的代码.感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助. 结构体内存布局 结构体大小 结构体实际上就是由各种类型的数据组合而成

  • 一文带你搞懂Java中Get和Post的使用

    目录 1 Get请求数据 1.1 Controller 1.2 Service 1.3 Application 1.4 Postman 2 Post接收数据 2.1 Controller 2.2 Service 2.3 Application 2.4 Postman 3 Post发送数据 3.1 Controller 3.2 Service 3.3 ResponseResult 3.4 Config 3.5 Application 3.6 Postman 1 Get请求数据 项目地址:https

  • 一文带你搞懂Python中的文件操作

    目录 一.文件的编码 二.文件的读取 2.1 open()打开函数 2.2 mode常用的三种基础访问模式 2.3 读操作相关方法 三.文件的写入 写操作快速入门 四.文件的追加 追加写入操作快速入门 五.文件操作综合案例 一.文件的编码 计算机中有许多可用编码: UTF-8 GBK Big5 等 UTF-8是目前全球通用的编码格式 除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可. 二.文件的读取 2.1 open()打开函数 注意:此时的f是open函数的文件对象,对象是Pytho

随机推荐