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

 更新时间:2022年11月21日 11:06:51   作者:世界尽头与你  
这篇文章主要给大家详细介绍一下Vue3中的基本语法,文中的示例代码讲解详细,对我们学习Vue3有一定的帮助,感兴趣的小伙伴可以了解一下

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基本语法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VueJs里利用CryptoJs实现加密及解密的方法示例

    VueJs里利用CryptoJs实现加密及解密的方法示例

    这篇文章主要介绍了VueJs里利用CryptoJs实现加密及解密的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Vuepress生成文档部署到gitee.io的注意事项及说明

    Vuepress生成文档部署到gitee.io的注意事项及说明

    这篇文章主要介绍了Vuepress生成文档部署到gitee.io的注意事项及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Nuxt封装@nuxtjs/axios请求后端数据方式

    Nuxt封装@nuxtjs/axios请求后端数据方式

    这篇文章主要介绍了Nuxt封装@nuxtjs/axios请求后端数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue 图片压缩并上传至服务器功能

    Vue 图片压缩并上传至服务器功能

    这篇文章主要介绍了Vue 图片压缩并上传至服务器功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 简单了解vue 插值表达式Mustache

    简单了解vue 插值表达式Mustache

    这篇文章主要介绍了vue 插值表达式Mustache的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • vue中使用keep-alive动态删除已缓存组件方式

    vue中使用keep-alive动态删除已缓存组件方式

    这篇文章主要介绍了vue中使用keep-alive动态删除已缓存组件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • el-upload多选文件上传报错解决方案

    el-upload多选文件上传报错解决方案

    本文主要介绍了el-upload多选文件上传报错解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • vue项目启动出现cannot GET /服务错误的解决方法

    vue项目启动出现cannot GET /服务错误的解决方法

    这篇文章主要介绍了vue项目启动出现cannot GET /服务错误的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 详解vue实现坐标拾取器功能示例

    详解vue实现坐标拾取器功能示例

    这篇文章主要介绍了详解vue实现坐标拾取器功能示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • vue图片加载失败时用默认图片替换的方法

    vue图片加载失败时用默认图片替换的方法

    这篇文章主要给大家介绍了关于vue图片加载失败时用默认图片替换的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08

最新评论