Vue3基础语法(⼀)

news2024/12/25 23:55:35

文章目录

  • 02——Vue3基础语法(⼀)
    • VSCode代码片段
    • 模板语法
    • Mustache
    • v-once指令
    • v-text
    • v-html
    • v-pre
    • v-bind
      • 绑定class
        • 对象语法
        • 数组语法
      • 绑定style
      • 动态绑定属性
      • 绑定一个对象
    • v-on
      • 基本使用
      • 参数传递
      • 修饰符

02——Vue3基础语法(⼀)


上一节中的问题:
在这里插入图片描述

答案:
在这里插入图片描述
前端面试之彻底搞懂this指向

在这里插入图片描述

VSCode代码片段

在这里插入图片描述

在这里插入图片描述
https://snippet-generator.app

在这里插入图片描述
在这里插入图片描述

模板语法

在这里插入图片描述

Mustache

<body>
    <div id="app"></div>
    <template id="my-app">
        <!-- mustache的基本使用 -->
        <h2>{{message}}</h2>
        <!-- 是一个表达式 -->
        <h2>{{counter * 100}}</h2>
        <h2>{{message.split(" ").reverse().join(" ")}}</h2>
        <!-- 也可以调用函数 -->
        <h2>{{getReverseMessage()}}</h2>
        <!-- 三元运算符 -->
        <h2>{{ isShow ? "阿司匹林" : ""}}</h2>
        <button @click="toggle">切换</button>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const App = {
            template: '#my-app',
            data() {
                return {
                    message: "hello world",
                    counter: 10,
                    isShow: true
                }
            },
            methods: {
                getReverseMessage() {
                    return this.message.split(" ").reverse().join(" ")
                },
                toggle() {
                    this.isShow = !this.isShow
                }
            },
        }

        Vue.createApp(App).mount("#app")
    </script>
</body>

v-once指令

在这里插入图片描述

<body>
    <div id="app"></div>
    <template id="my-app">
        <h2>{{counter}}</h2>
        <h2 v-once>v-once: {{counter}}</h2>
        <div v-once>
            <h2>{{counter}}</h2>
        </div>
        <button @click="increment">+1</button>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const App = {
            template: '#my-app',
            data() {
                return {
                    counter: -1
                }
            },
            methods: {
                increment() {
                    this.counter++
                }
            },
        }

        Vue.createApp(App).mount("#app")
    </script>
</body>

以上代码,点击+1 只有第一行的counter变化, 下面两行一直都是显示是-1

v-text

在这里插入图片描述
不过还是推荐使用Mustache语法

v-html

在这里插入图片描述
<h2 v-html="message"></h2>

v-pre

在这里插入图片描述

v-bind

在这里插入图片描述

<body>
    <div id="app"></div>
    <template id="my-app">
        <!-- v-bind的基本使用 -->
        <img v-bind:src="imgUrl" alt="">
        <a v-bind:href="link">百度一下</a>
        <!-- v-bind 提供的一个语法糖 -->
        <img :src="imgUrl" alt="">
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const App = {
            template: '#my-app',
            data() {
                return {
                    imgUrl: "https://pics7.baidu.com/feed/bf096b63f6246b601b80a47592b08f4a500fa2f7.jpeg?token=5ca864652fbb35921a2127578f40c7b3",
                    link: "http://www.baidu.com"
                }
            }
        }

        Vue.createApp(App).mount("#app")
    </script>
</body>

绑定class

在这里插入图片描述

对象语法

<style>
    .active {
        color: red;
    }

    .why {
        font-size: 25px;
    }
</style>
-------------------------------------------------------------------------------------
<body>
    <div id="app"></div>
    <template id="my-app">
        <div :class="className">hhhhhhhhh</div>
        <!-- 对象语法:{'类名' : boolean} -->
        <div :class="{'active': isActive}">呵呵哈哈哈</div>
        <button @click="toggle">切换</button>

        <!-- 类名的引号不写也正常 -->
        <div :class="{active: isActive}">类名没引号</div>

        <!-- 也可以有多个键值对 -->
        <div :class="{'active': isActive, 'title': isTitle}">嗯嗯</div>

        <!-- 默认的class和动态的class结合 -->
        <div class="abc cba" :class="{'active': isActive, 'title': isTitle}">test</div>

        <!-- 将对象放到一个单独的属性 -->
        <div :class="classObj">单独的属性</div>

        <!-- 将返回的对象放到一个methods(computed)方法中 -->
        <div :class="getClassObj()">方法</div>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const App = {
            template: '#my-app',
            data() {
                return {
                    className: 'why',
                    isActive: true,
                    isTitle: true,
                    classObj: {
                        active: true,
                        title: true
                    }
                }
            },
            methods: {
                toggle() {
                    this.isActive = !this.isActive
                },
                getClassObj() {
                    return {
                        active: true,
                        title: true
                    }
                }
            },
        }

        Vue.createApp(App).mount("#app")
    </script>
</body>

数组语法

<div id="app"></div>
<template id="my-app">
    <div :class="['abc', title]"></div>
    <div :class="['abc', title, isActive ? 'actve' : '']"></div>
    <div :class="['abc', title, {'active': isActive}]"></div>
</template>

<script src="../js/vue.js"></script>
<script>
    const App = {
        template: '#my-app',
        data() {
            return {
                isActive: true,
                title: 'cba'
            }
        }
    }

    Vue.createApp(App).mount("#app")
</script>

绑定style

在这里插入图片描述


<body>
    <div id="app"></div>
    <template id="my-app">
        <div :style="{color: finalColor, fontSize: '50px'}">hhhhhh</div>
        <div :style="styleObj">绿色</div>
        <div :style="getStyleObj()">eeee</div>
        <!-- 数组 -->
        <div :style="[styleObj2, styleObj]">ttttt</div>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const App = {
            template: '#my-app',
            data() {
                return {
                    finalColor: 'red',
                    styleObj: {
                        color: 'yellow',
                        backgroundColor: 'red',
                        fontSize: '22px'
                    },
                    styleObj2: {
                        fontWeight: 700,
                        textDecoration: 'underline',
                        padding: '10px'
                    }
                }
            },
            methods: {
                getStyleObj() {
                    return {
                        color: 'skyblue',
                        fontSize: '50px',
                        fontWeight: 700
                    }
                }
            },
        }

        Vue.createApp(App).mount("#app")
    </script>
</body>

在这里插入图片描述

动态绑定属性

在这里插入图片描述在这里插入图片描述

绑定一个对象

在这里插入图片描述

v-on

在这里插入图片描述

基本使用

<body>
    <div id="app"></div>
    <template id="my-app">
        <!-- 完整写法v-on:监听的事件"methods中的方法"-->
        <button v-on:click="btnClick">按钮</button>
        <div class="area" v-on:mousemove="mouseMove"></div>
        <!-- 语法糖@ -->
        <button @click="btnClick">按钮</button>
        <!-- 绑定一个表达式 -->
        <button @click="counter++">{{counter}}</button>
        <!-- 绑定一个对象 -->
        <div class="area" v-on="{click: btnClick, mousemove: mouseMove}"></div>
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const App = {
            template: '#my-app',
            data() {
                return {
                    counter: 100
                }
            },
            methods: {
                btnClick() {
                    console.log("鼠标点击事件")
                },
                mouseMove() {
                    console.log("鼠标移动")
                }
            },
        }

        Vue.createApp(App).mount("#app")
    </script>
</body>

参数传递

在这里插入图片描述

修饰符

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

股票列表接口数据API

国内股票行情股票列表接口数据API&#xff0c;包含5分钟、日线。 JSON返回示例 { "code": "000000", "message": "success", "result": [ "2017-04-10 14:55:00,15.190,15.230,15.180,15.190,3838901", &qu…

毕业设计-基于大数据的股票预测系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

数据挖掘|主成分分析|

一、主成分分析 在实际问题中&#xff0c;我们经常会遇到研究多个变量的问题&#xff0c;而且在多数情况下&#xff0c;多个变量之间常常存在一定的相关性。由于变量个数较多再加上变量之间常常存在一定的相关性&#xff0c;势必增加了分析问题的复杂性。如何从多个变量中综合为…

2022年下半年的软考成绩今天可以查询啦!!!

自2022年11月5-6日软考考试完成后&#xff0c;经过一个多月的等待&#xff0c;终于在2022年12月15日软考成绩出来啦&#xff01; 相信很多小伙伴们都怀着激动与愉悦的心情&#xff0c;迫切想查询一下自己的成绩&#xff01; 下面是弘博创新小编整理的软考成绩查询流程。 软考成…

Python+QT美颜工具源码

程序示例精选 PythonQT美颜工具源码 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《PythonQT美颜》编写代码&#xff0c;功能包括了亮度&#xff0c;磨皮&#xff0c;风格化&#xff0c;铅笔化…

软件测试人员一定要会的微信小程序测试点

微信小程序&#xff1a; 不需要下载安装即可使用的应用&#xff0c; 实现了应用“触手可及”的梦想&#xff0c;用户扫一扫或者搜一下即可打开应用。 体现了“用完即走”的理念&#xff0c;用户不用关心是否安装太多应用的问题。 应用将无处不在&#xff0c;随时可用&#…

Mysql分布式锁(一)通过jvm本地锁解决mysql并发问题及可能的失效情况

强烈建议配合之前的JVM本地锁&#xff08;一&#xff09;简单实现阅读 mysql场景 将之前的场景修改为mysql场景&#xff0c;即在数据库中保存一条数据&#xff0c;多个线程并发处理该数据。 数据库建表如下 pom.xml中新增mybatis-plus和mysql <dependency><groupId…

戴尔r730xd服务器从u盘启动设置方法(戴尔r730取消网络启动方法)

1,开机后出现提示的时候&#xff0c;按F12 2,等一会系统会自动进入BIOS选择菜单:选择system bios 回车 3,这时在选择boot setting 回车: 4,在这里选择 BIOS Boot settings 5,将网卡启动的勾选去掉&#xff0c;即默认使用C盘启动 6,退出Esc&#xff0c;会提示保存&#xff0…

C#语言实例源码系列-电脑系统挂机锁

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

[附源码]Python计算机毕业设计广西助农平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

微服务框架 SpringCloud微服务架构 多级缓存 46 JVM 进程缓存 46.2 导入商品案例【导入Demo工程】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存46 JVM 进程缓存46.2 导入商品案例【导入Demo工程】46.2.1 导入商品管理案例demo工程46 JVM 进程缓存 …

你知道吗?Python原来可以做这些

如果你准备开始学习Python或者你已经开始了学习Python&#xff0c;那么&#xff0c;你肯能会问自己&#xff1a; “我用Python究竟能做些什么&#xff1f;” 嗯&#xff0c;这是一个棘手的问题&#xff0c;因为Python有很多应用方向。但随着时间的推移&#xff0c;我发现Pytho…

Java图书管理代码

Java图书管理代码一&#xff1a;简介二&#xff1a;核心需求三: 类的设计1. 创建图书相关的类2. 创建操作相关的类3. 创建用户相关的类4. 进行整合5. 实现具体的每个 Operation大家好&#xff0c;我是晓星航。今天为大家带来的是Java语言图书馆里系统的相关的讲解&#xff01;&…

【裂缝识别】无人机裂缝图像处理系统(带面板)【含GUI Matlab源码 1727期】

⛄一、简介 1 案例背景 随着国家对公路建设的大力投入&#xff0c;我国的公路通车总里程己经位居世界前列&#xff0c;这样进一步促进了我国经济建设的发展。随着公路的大量投运&#xff0c;公路日常养护和管理已经成为制约公路运营水平提高的瓶颈&#xff0c;特别是路面状态采…

使用QtDesignerForm界面

使用QtDesignerForm界面1. 概述2. UI文件的使用分析2.2 QtDesignerForm 界面的使用3. Demo1. 概述 在进行QT开发创建UI文件通常有两种方式&#xff0c;分别是通过Qt 设计师界面类、Qt Designer Form创建。两者创建的区别如下。 通过Qt 设计师界面类创建的界面通常会包括对应的…

手把手系列:如何将小程序游戏引入自有APP?(iOS篇)

自FinClip 诞生以来&#xff0c;一直有不少开发者询问官方 FinClip 什么时候可以支持微信小游戏&#xff1f;实际上&#xff0c;从去年开始我们就把支持微信小游戏的计划做进了产品的 Roadmap。2022年底&#xff0c;我们终于在新年之前实现了对小游戏的支持&#xff01; 近期…

中文输入法中光标跟随能力触发的浏览器事件探究

:::tip 最近在着手腾讯文档的输入体验优化&#xff0c;在其中有一个不起眼的小需求引起了我的注意&#xff0c;并顺便研究了一些事件监听机制相结合的特点&#xff0c;特此记录一下填坑过程。 ::: 模拟光标跟随 大部分的主流输入法都有这样一个特性&#xff0c;在输入中文时&…

昆仑天工开源的AIGC

🍿*★,*:.☆欢迎您/$:*.★* 🍿 https://github.com/SkyWorkAIGC/SkyCode 技术优势一 :涵盖多种编程语言 不同的编程语言着重于解决不同平台、环境下的问题,不同的编程语言都有自己存在的理由。奇点智源SkyCode能够生成的代码,不仅包括使用广泛的JavaScript、python、Jav…

(六)springcloud之Nacos集群与持久化配置-3

模块&#xff1a; 1.父工程&#xff08;管理版本&#xff09; 2.公共模块&#xff1a;Common-API 3.测试模块&#xff1a;NacosClusterConfigConsumer80 版本&#xff1a; springboot:2.7.6 springcloud:2021.0.5 spring-cloud-alibaba-dependencies:2021.0.1.0 nacos:2.1.2 ng…

RCFSNet

搬来了一种结合道路上下文信息与多尺度特征的道路遥感图像道路提取方法&#xff0c;与常见的道路提取算法相比&#xff0c;RCFSNet能够获取完整的路网标签&#xff0c;在遮挡场景中表现出色 本人是太原理工大学大数据学院在2022年发表在《IEEE Geoscience and remote sensing …