vue3初步学习

news2024/11/15 5:59:42

vue3初步学习

vue模版 练习代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>实验4</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>1.文本插值</h2>
        <div id="app1">
            <!-- v-html 解析js属性中的标签及属性 -->
            <h3 v-html=message></h3>
            <!-- 文本插值和表达式插值 -->
            <div>{{a}}+{{b}}={{a+b}}</div>
        </div>

        <script>
            const text = {
                data(){
                    return{
                        message: '<p style="color:red">表达式求值</p>',
                        a: 10,
                        b: 20,
                    }
                }
            }
            Vue.createApp(text).mount("#app1")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>2.常用vue命令</h2>
        <div id="app2">
            <h3>{{message}}</h3>
            <input type="button" value="-" @click="sub">
            <span :title="name">{{count}}</span>
            <input type="button" value="+" @click="add">
            <br>
            <!-- v-model 可以在组件上使用以实现双向绑定。 -->
            <input v-model="taskText" placeholder="请输入内容...">
            <div>您输入的内容是:{{taskText}}</div>
        </div>

        <script>
            const app2 = {
                data(){
                    return{
                        message:'常用指令',
                        count: 0,
                        name: "计数器",
                        taskText: ""
                    }
                },
                methods:{
                    sub(){
                        if(this.count > 0)
                        this.count -= 1
                    },
                    add(){
                        this.count += 1
                    }
                }
            }
            Vue.createApp(app2).mount("#app2")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>3.v-if指令</h2>
        <div id="app3">
            <h3 v-if="cj">成绩等级</h3>
            <p>
                姓名:{{name}}<br>
                成绩:{{score}}<br>
                等级:
                <span v-if="score>90">优秀</span>
                <span v-else-if="score>80">良好</span>
                <span v-else>一般</span>
            </p>
        </div>

        <script>
            const student ={
                data(){
                    return{
                        cj: false,
                        name: "张三",
                        score: 85
                    }
                }
            }
            Vue.createApp(student).mount("#app3")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>4.v-for指令</h2>
        <div id="app4">
            <!-- 数组的参数为元素和下标 -->
            <div v-for="(item,index) in arr">第{{index + 1}}个学生是{{item}}</div>
            <!-- 对象数组的参数是元素 -->
            <p v-for="item in stu">id:{{item.id}} ------- name:{{item.name}}</p>
            <!-- 对象的参数是值,键和下标 -->
            <p v-for="(value,key,i) in obj">{{i}}:{{key}}:{{value}}</p>
            <!-- 数字 -->
            <p v-for="i in 5">第{{i}}次循环</p>
        </div>

        <script>
            const student2 = {
                data(){
                    return{
                        // 数组
                        arr:['张三','李四','王五'],
                        // 对象数组
                        stu:[{id: 1,name:'white'},
                        {id: 2,name:'rose'},
                        {id: 3,name:'mark'}],
                        
                        // 对象
                        obj:{
                            id: 1,
                            name: "rose",
                            sex: "female"
                        }
                    }
                }
            }
            Vue.createApp(student2).mount("#app4")
        </script>
    </div>

    <div style="border: 1px solid #949494;padding: 20px;margin-top: 10px;">
        <h2>5.综合实例--待办任务</h2>
        <div id="app5">
            <!-- 输入框元素,用来新建待办任务 -->
            <!-- prevent是修饰符,阻止默认事件,而去触发指定的事件 提交以后不会刷新页面-->
            <form @submit.prevent="addTask">
                <span>新建任务</span>
                <!-- placeholder属性用于设置表单输入框的占位符 -->
                <input v-model="taskText2" placeholder="请输入任务...">
                <button>添加</button>
            </form>
            <!-- 有序列表,使用v-for来构建 -->
            <ol>
                <li v-for="(item,index) in todos">
                    {{item}}
                    <button @click="remove(index)">
                        删除任务
                    </button>
                    <hr>
                </li>
            </ol>
        </div>
        
        <script>
            const App5 = {
                data(){
                    return{
                        // 待办任务列表数据
                        todos:[],
                        // 当前输入的待办任务
                        taskText2: "",
                    }
                },
                methods: {
                    // 添加一条待办任务
                    addTask(){
                        // 判断下输入框是否为空
                        if(this.taskText2.length == 0){
                            alert("请输入任务")
                            // alert()方法是显示一条弹出提示消息和确认按钮的警告框。
                            return
                        }
                        this.todos.push(this.taskText2)
                        this.taskText2 = ""
                    },
                    // 删除待办
                    remove(index){
                        this.todos.splice(index,1)
                    }
                }
            }
            Vue.createApp(App5).mount("#app5")
        </script>
    </div>

    

</body>
</html>

效果图

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

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

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

相关文章

BAAI 北京智源研究院

文章目录 关于 BAAI产品悟道大模型FlagOpen 大模型技术天演 生物智能九鼎 智算平台 关于 BAAI BAAI : Beijing Academy of Artificial Intelligence 北京智源研究院 官网&#xff1a;https://www.baai.ac.cnhf : https://huggingface.co/BAAI百度百科 https://baike.baidu.co…

翻看去年录的幼儿园选择的视频,我被打脸了,真疼

去年 7 月份发了一个幼儿园选择的视频&#xff0c;如今回头看&#xff0c;我被打脸了&#xff0c;真疼呀 去年的选择 省流版&#xff1a;当时我列了三种选择&#xff1a; 普惠公立幼儿园普惠私立或民办有政府补贴的幼儿园私立幼儿园 以下讨论是基于我个人情况&#xff0c;在北京…

使用POI以OLE对象的形式向excel中插入附件(pdf为例)

前言&#xff1a; 最近在使用easyExcel操作excel文件时&#xff0c;一直想找到一个方法可以往excel中填充附件&#xff0c;但是目前只发现POI可以插入附件&#xff0c;于是将方法记录如下&#xff1a; 实现&#xff1a; 这个方法主要是使用 Apache POI 的 HSSFWorkbook 类来…

算法公式汇总

文章目录 三角函数定义式诱导公式平方关系两角和与差的三角函数积化和差公式和差化积公式倍角公式半角公式万能公式其他公式反三角函数恒等式 三角函数定义式 三角函数 定义式 余切&#xff1a; c o t A 1 t a n A \text { 余切&#xff1a;} \ cotA \frac{1}{tanA} 余切&a…

javaWeb项目-高校社团活动管理平台功能介绍

开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 大学生社团活动平台&#xff1b;Ja…

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-子串分值和

solution1&#xff08;通过40%&#xff09; 依次求子串并统计出现过的字母个数 #include<iostream> #include<string> #include<set> using namespace std; int main(){string s, subs;cin >> s;int len s.size(), ans 0;for(int j 1; j < len…

AI开源概览及工具使用

一、前言 随着ChatGPT热度的攀升&#xff0c;越来越多的公司也相继推出了自己的AI大模型&#xff0c;如文心一言、通义千问等。各大应用也开始内置AI玩法&#xff0c;如抖音的AI特效&#xff1b; 关联资源&#xff1a;代码 GitHub、相关论文、项目Demo、产品文档、Grok Ai、gr…

国内git最新版本下载链接2.44

git官网地址:Git - Downloading Package (git-scm.com) 蓝奏云: ​​​​​​gGit-2.44.0-64-bit.exe - 蓝奏云 git仓库地址:git/git: Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via …

机器学习:智能时代的核心引擎

目录 一、什么是机器学习 二、监督学习 三、无监督学习 四、半监督学习 五、强化学习 一、什么是机器学习 机器学习是人工智能的一个分支&#xff0c;它主要基于计算机科学&#xff0c;旨在使计算机系统能够自动地从经验和数据中进行学习并改进&#xff0c;而无需进行明确…

LeetCode刷题【树状数组、并查集、二叉树】

目录 树状数组307. 区域和检索 - 数组可修改406. 根据身高重建队列673. 最长递增子序列的个数1409. 查询带键的排列 并查集128. 最长连续序列130. 被围绕的区域 二叉树94. 二叉树的中序遍历104. 二叉树的最大深度101. 对称二叉树543. 二叉树的直径108. 将有序数组转换为二叉搜索…

JavaSE:类与对象

目录 一、前言 二、类与对象的介绍 1.类的定义格式 三、类的实例化 1.类的实例化介绍 2.成员初始化 3.类中方法的实现 四、封装 1.private实现封装 2.getter和setter方法 五、构造方法的使用 1.构造方法的介绍 2.构造方法的特性 六、this引用 1.this的介绍 2.th…

基于SpringBoot+MyBatis框架的智慧生活商城系统的设计与实现(源码+LW+部署+讲解)

目录 前言 需求分析 可行性分析 技术实现 后端框架&#xff1a;Spring Boot 持久层框架&#xff1a;MyBatis 前端框架&#xff1a;Vue.js 数据库&#xff1a;MySQL 功能介绍 前台功能拓展 商品详情单管理 个人中心 秒杀活动 推荐系统 评论与评分系统 后台功能拓…

【源码】I.MX6ULL移植OpenCV

编译完成的源码&#xff1a; git clone https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.下载源码放在自己的opecv源码目录下 2.QTOpenCV工程代码放置的位置 3.更改.pro工程文件的opencv地址 4.使用命令行编译 前提是自己环境中已经配置好arm-qt的交叉编译…

【Langchain-Chatchat】部署ChatGLM3-6B-32K教程

介绍 Langchain-Chatchat这个框架可以帮助我们更容易的部署大语言模型&#xff0c;之前也写过ChatGLM传统的部署教程&#xff0c;有兴趣的可以参考 【ChatGLM3】第三代大语言模型多GPU部署指南【ChatGLM2-6B】从0到1部署GPU版本 借助Langchain-Chatchat框架&#xff0c;可以…

从产品组装和维护/维修的角度来看,基于增强现实的指导:关于挑战和机遇的最新综述

作者&#xff1a; 1. M. Eswaran 2. Anil Kumar Gulivindala 3. M.V.A.Raju Bahubalendruni 关于本文 •分析了增强现实在装配和维护/维修中的作用。 •讨论了AR辅助制造系统的软件和硬件元素。 •讨论了AR跟踪和配准技术面临的挑战。 •讨论了AR辅助制造系统的未来…

二分查找法总结

目录 1、思路讲解&#xff08;LC704&#xff09;2、代码思路讲解&#xff08;循环不变量&#xff09;&#xff08;1&#xff09; 左闭右闭&#xff08;2&#xff09;左闭右开&#xff08;3&#xff09;总结&#xff1a;左开右闭和左闭右开&#xff08;4&#xff09;复杂度分析 …

力扣刷题31-33(力扣 0024/0070/0053)

今日题目&#xff1a; 24. 两两交换链表中的节点 题目&#xff1a;给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09; 思路&…

想来开视频号小店,你需要准备好这些内容!新手建议收藏!

大家好&#xff0c;我是电商小布。 视频号小店项目&#xff0c;作为当前在电商行业内推出时间最短的项目&#xff0c;内部发展潜力大&#xff0c;吸引到了很多小伙伴想要来入局其中。 而对于我们新手朋友来说&#xff0c;在开店的时候&#xff0c;不知道该准备哪些东西&#…

性能测试-Jmeter中IF控制器使用

一、Jmeter控制器 分为两种类型&#xff1a; 控制测试计划执行过程中节点的逻辑执行顺序&#xff0c;如&#xff1a;循环控制器&#xff0c;if控制器等对测试计划中的脚本进行分组&#xff0c;方便Jmeter统计执行结果以及进行脚本的运行时控制等&#xff0c;如&#xff1a;吞…

小红书扫码登录分析与python实现

文章目录 1. 写在前面2. 接口分析3. 代码实现 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…