Vue3的使用--002

news2024/11/17 16:26:37

Vue3包含vue2的语法,学习vue3就行。

前提要求, 安装大于node.js15.0。

创建Vue  项目  :

npm init Vue@lastest  : 这一执行将会安装并执行create-vue, 他是Vue 官方的脚手架工具。你将会看到一些Typescript 和测试支持之类的可选功能提示:

 第一个是项目名称:名字不要有大写。

npm install 创建的是node_modules文件 

Vue 3 是一款现代化的 JavaScript 框架,提供了非常灵活的组件化开发方式,其核心的响应式系统更是让开发者可以轻松地实现数据的双向绑定。下面是一些 Vue3 的基础笔记:

1. 创建 Vue 3 项目:

 

    npm install -g @vue/cli
    vue create my-project
    cd my-project
    npm run serve

2. 创建 Vue 3 实例:

 

    const app = Vue.createApp({
        // options
    });

3. 组件语法:
 

    app.component('component-name', {
        // options
    });


 

4. 属性绑定:

v-bind ==:


    <template>
        <div>
            <h1 :class="className">{{ title }}</h1>
        </div>
    </template>
    <script>
        export default {
            data() {
                return {
                    title: 'Hello World',
                    className: 'highlight'
                };
            }
        };
    </script>


 

5. 事件绑定:
 

    <template>
        <div>
            <button @click="handleClick">Click Me</button>
        </div>
    </template>
    <script>
        export default {
            methods: {
                handleClick() {
                    console.log('Button clicked');
                }
            }
        };
    </script>

6. 条件渲染:
 

 <template>
        <div>
            <p v-if="showMessage">Hello World</p>
        </div>
    </template>
    <script>
        export default {
            data() {
                return {
                    showMessage: true
                };
            }
        };
    </script>

7. 循环渲染:
 

    <template>
        <div>
            <ul>
                <li v-for="item in items" :key="item.id">
                    {{ item.name }}
                </li>
            </ul>
        </div>
    </template>
    <script>
        export default {
            data() {
                return {
                    items: [
                        { id: 1, name: 'Item 1' },
                        { id: 2, name: 'Item 2' },
                        { id: 3, name: 'Item 3' }
                    ]
                };
            }
        };
    </script>

Vue3 是一个灵活且易学的框架,它提供了一系列的工具和方法来帮助开发者快速实现高效的 Web 应用。使用 Vue3,你可以在短时间内构建出一个优秀的应用,并享受到 Vue 带来的高开发效率、强大的数据绑定和灵活的组件化开发方式。

8,文本插值

<script >
export default {
  data(){
    return{
      msg:"亲爱的佳佳,\n" +
          "\n" +
          "我知道你是一个乐观开朗的女孩。你的笑容总能带给人无限的温暖和动力。就算面对一些困难,你也会用乐观的心态去迎接它,这让我非常钦佩和敬佩。\n" +
          "\n" +
          "佳佳,我想和你共同迎接人生的挑战,期待某时——我们的相遇。\n" +
          "\n" +
          "",
      hello:"hello world  你好世界!"
    }
  }
}
</script>

<template>
<h1>佳佳同学</h1>
  <h4>{{ msg }}</h4>
  <h4>{{ hello }}</h4>
</template>

Vue3 的模板语法与 Vue2 有些许不同,下面介绍 Vue3 的模板语法:变量和表达式
Vue3 的模板语法使用单花括号({{}})表示变量和表达式,具体例如:

可以求具体的值  {{ num1+num2 }} 结果为:30

<template>
  <div>
    <p>{{msg}}</p>
    <p>{{num1 + num2}}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: "Hello World",
      num1: 10,
      num2: 20
    }
  }
}
</script>


指令
Vue3 的指令使用 v- 前缀形式,可以绑定到 HTML 元素、组件或者指令。
v-if:根据表达式的值条件地渲染元素。

<template>
  <div>
    <p v-if="isVisible">{{msg}}</p>
    <button @click="isVisible = !isVisible">{{isVisible ? 'Hide' : 'Show'}}</button>
  </div>
</template><script>
export default {
  data() {
    return {
      msg: "Hello World",
      isVisible: true
    }
  }
}
</script>


v-for:循环渲染元素。

v-for of == v-for in   :功能一样

<template>
  <div>
    <ul>
      <li v-for="(item, index) in items" :key="index">{{item}}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: ["Apple", "Banana", "Orange"]
    }
  }
}
</script>


v-bind:动态地绑定一个或多个属性。

<template>
  <div>
    <button :class="{ active: isActive }">Click Me</button>
    <button :style="{ color: btnColor }">Click Me</button>
  </div>
</template><script>
export default {
  data() {
    return {
      isActive: true,
      btnColor: 'red'
    }
  }
}
</script>


v-on:监听 DOM 事件并执行 JavaScript 代码或者调用 Vue3 方法。

<template>
  <div>
    <button @click="handleClick">Click Me</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleClick() {
      console.log('Button clicked');
    }
  }
}
</script>
v-model:创建双向绑定。
<template>
  <div>
    <input type="text" v-model="msg" />
    <p>You input: {{msg}}</p>
  </div>
</template><script>
export default {
  data() {
    return {
      msg: "Hello World"
    }
  }
}
</script>


插槽
Vue3 还引入了新的插槽语法,用于在组件之间分发内容。具体如下:

<template>
  <div>
    <sidebar>
      <template #header>
        <h1>My Sidebar</h1>
      </template>
      <template #content>
        <p>This is my content.</p>
      </template>
    </sidebar>
  </div>
</template>

<script>
import Sidebar from "./Sidebar.vue"
export default {
  components: { Sidebar }
}
</script>


在 Sidebar 组件内使用 <slot> 来插入具名插槽,使用 <template> 标签和 # 号来定义和命名插槽,在父组件内使用时也需要这种方式来调用。

以上就是 Vue3 的模板语法,可以看到 Vue3 引入了不少新特性,开发者在使用时需要注意语法的变化。

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

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

相关文章

在VSCode里使用Jupyter?Notebook调试Java代码的详细过程

目录 什么是Jupyter Notebook&#xff1f;Jupyter Notebook主要优点环境准备下载 IJava创建conda虚拟环境搭建运行环境测试 之前使用的那台电脑有点旧了&#xff0c;稍微跑一下程序就报内存不够。本来想考虑入手一台带GPU的新电脑&#xff0c;在商品浏览里的时候&#xff0c;…

DynaSLAM代码详解(1) — RGBD模式DynaSLAM运行流程

目录 1.1 DynaSLAM和ORB-SLAM2文件对比 1.2 RGBD模式运行流程 论文翻译地址&#xff1a;动态SLAM论文(2) — DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes_几度春风里的博客-CSDN博客 1.1 DynaSLAM和ORB-SLAM2文件对比 DynaSLAM是一个建立在ORB-SLAM2基础上…

【Leetcode】707. 设计链表

单向链表 class ListNode:def __init__(self, val0, nextNone):self.val valself.next nextclass MyLinkedList:def __init__(self):self.dummy_head ListNode()self.size 0def get(self, index):if index < 0 or index > self.size:return -1current self.dummy_h…

【简单认识LVS+Keepalived负载均衡高可用群集】

文章目录 一、Keepalived高可用详解1、简介2、原理3、Keepalived体系主要模块及其作用&#xff1a; 二、LVSKeepalived 高可用群集部署实例1.配置NFS共享存储器2.配置节点web服务&#xff08;两台的配置相同&#xff09;&#xff08;1&#xff09;配置虚拟 IP 地址&#xff08;…

飞桨黑客松 OpenVINO™ 任务获奖者经验分享 | 基于OpenVINO™ 与PaddleOCR的结构化输出Pipeline...

点击蓝字 关注我们,让开发变得更有趣 作者 | 张一乔 排版 | 李擎 OpenVINO™ 1. 黑客松活动介绍 01 第四季飞桨黑客松(PaddlePaddle Hackathon Season 4)是由百度联合合作伙伴共同举办的开源深度学习框架类黑客松活动。本次活动旨在为全球开发者提供一个交流、合作和创新的机会…

Django_模型类详解(七)

目录 一、定义属性 字段类型 选项 二、查询集 两大特性 查询集的缓存 限制查询集 三、条件查询 条件运算符 1) 查询相等 2) 模糊查询 3) 空查询 4) 范围查询 5) 比较查询 6) 日期查询 F对象 Q对象 聚合函数 四、关联查询 通过对象执行关联查询 通过模型类执…

线程池介绍

1、什么是线程池 例子&#xff1a; 10年前单核CPU电脑&#xff0c;假的多线程&#xff0c;像马戏团小丑玩多个球&#xff0c;CPU需要来回切换。 现在是多核电脑&#xff0c;多个线程各自跑在独立的CPU上&#xff0c;不用切换效率高。 线程池的优势&#xff1a; 线程池做的工作…

七、VPN技术之密码学基础(密码体制、对称加密算法、非对称加密算法)

更多网络基础内容可见: 网络基础学习目录及各章节指引 7.1 密码学基础 7.1.1 基础概念 密码:对文本进行编码,使偷窥者无法识别的算法。是一套编码方案,一种特殊的报文编码和相应的解码方式的结合体。 加密之前的原始报文称为明文,使用密码之后的报文叫密文。一个简单的例…

elk高并发架构

1.前言 普通的elk架构只适合数据量小的情景&#xff0c;而且也不安全&#xff0c;在瞬时数据量大的情况下可能会导致logstash崩溃&#xff0c;从而导致数据的丢失&#xff0c;对于数据安全有较高要求&#xff0c;可以在架构中加入消息队列&#xff0c;既可以防止瞬时的大流量并…

有过JVM调优经验吗【面试题】

写作目的 JVM其实比较偏理论的&#xff0c;日常工作中很少遇到。但是面试他问&#xff0c;所以需要自己mock一下场景进行准备这个问题的回复。 本次分析的场景的元空间太小导致频繁FGC的问题。 源码&启动参数 gitee下载源码 启动-调优前 nohup java -XX:MetaspaceS…

【MySQL】SQL索引失效的几种场景及优化

MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法&#xff0c;并且加快查询的速度&#xff0c; 因此索引对查询的速度有着至关重要的影响。 使用索引可以快速地定位表中的某条记录&#xff0c;从而提高数据库查询的速度&#xff0c;…

C++之函数模板高级用法(一百五十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

两个好用到爆的Python模块,建议收藏!

在日常开发工作中&#xff0c;经常会遇到这样的一个问题&#xff1a;要对数据中的某个字段进行匹配&#xff0c;但这个字段有可能会有微小的差异。比如同样是招聘岗位的数据&#xff0c;里面省份一栏有的写“广西”&#xff0c;有的写“广西壮族自治区”&#xff0c;甚至还有写…

基于单片机的智能鞋柜的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;通过DHT11温湿度采集&#xff1b;通过按键设置逻辑处理&#xff1b;通过LED紫外线消毒&#xff1b;通过继电器控制风扇进行换气除湿&#xff1b;通过继电器控制加热片进行加热&#xff1b;整个电路以5v供电; 电路图 PCB 源代码 #i…

nodejs 读取xlsx 文件转json 格式(包含表格时间类型)

需求概要&#xff1a;从xlsx 文件中读取内容转化成想要的json 格式&#xff0c;用于web 读取数据 newDoc.xlsx文档内容大概&#xff1a; 本内容主要是更新前端公告内容&#xff0c; const xlsx require(node-xlsx) const fs require(fs) const moment require(moment)//转换…

双非本大二上岸大厂——念念不忘,必有回响

⭐️前言⭐️ 博主就读于一所普通的学校&#xff08;双非本&#xff09;&#xff0c;在大二下学期3月份开始网上投递简历&#xff0c;历时近百余天&#xff0c;投递简历500&#xff0c;面试近40余场&#xff0c;最终在6月份学期末&#xff0c;斩获了两个大厂offer&#xff08;北…

最小栈——力扣155

方法&#xff1a;辅助栈 这些函数中只有求最小值函数需要借助辅助栈 代码如下&#xff1a; class MinStack {stack<int> x_stack;stack<int> min_stack; public:MinStack() {min_stack.push(INT_MAX);}void push(int val) {x_stack.push(val);min_stack.push(…

使用Java计算课程绩点、课程学分绩点、总绩点

1、定义实体类 实体类中包括属性表 名称释义xuefen该课程学分chengji该课程取得的成绩xuefenjidian该课程取得的学分绩点xuefen该课程取得的学分 其中有式子&#xff1a; j i d i a n ( c h e n g j i − 50 ) 10.0 jidian \frac{(chengji-50)}{10.0} jidian10.0(chengji−…

【Azure】解析 Microsoft Defender for Cloud:云安全的保护与管理

你在使用自己的电脑的时候&#xff0c;作为安全防护你可能直接装个杀毒软件&#xff0c;或者什么xx管家之类的&#xff0c;那么你是否有想过&#xff0c;如果我有一套云服务之后&#xff0c;我应该如何进行安全防护呢&#xff1f;本文带你了解在 Azure 云中的安全防护体系&…

同余最短路

同余最短路就是把每一个同余类当成一个结点&#xff0c;在同余类之间建边&#xff0c;然后跑最短路 答案统计的时候对每个同余类单独计算贡献 题意&#xff1a; 思路&#xff1a; 答案可以对模X的所有同余类计算贡献 设dis[i]为在模X意义下&#xff0c;Y和Z之后%X余数为i的…