Vue3 菜鸟入门(二)超详细:基本框架 模板语法和指令

news/2024/7/10 0:10:52 标签: 学习, 笔记, vue

学习笔记】Vue3 菜鸟入门(二)超详细:基本框架 模板语法和指令

  • 关键词:Vue 、Vue 3、Java、Spring Boot、Idea、数据库、一对一、培训、教学
  • 本文主要内容含Vue 基本框架 模板语法、指令
  • 计划1小时完成,请同学尽量提前准备。本部分主要是代码实践。
  • 学习需要请联系:xujian_cq
  • 手把手教学、腾讯会议一对一培训,所有代码都要敲一遍,有问题随时暂停解决
  • 前置内容:Vue3 菜鸟入门(一)超详细!
  • 下次内容为引用外部源码、组件、路由。

1 新建项目

  • 新建项目,当复习命令了
# 初始化项目:本次全部选No
npm init vue@latest
# 加载依赖(记得进入项目后执行),可以如下图cd进去
npm install
# 运行开发环境
npm run dev
  • 上述整个过程如下图
    在这里插入图片描述

  • 完成后关闭控制台,用VSCode打开,开始撸代码了

  • 参考上文,在VSCode的CMD终端中把项目运行起来

2 准备工作( 基本框架)

  • 新建的项目内容比较多,为了更好的学习内容,我们删除原来的模板,新建内容

vue_28">2.1 删除App.vue中的默认内容

  • 如下图,删得干干净净
    在这里插入图片描述

2.2 创建我们的第一个view

  • 在src/views/中创建一个Index.vue,并键入如下初始内容
  • 初始内容与删掉基础内容的App.vue一样
<template>
    <div>
        Hello World!
    </div>
</template>
<script setup>

</script>

<style scoped>

</style>
  • 如下图
    在这里插入图片描述

vueIndexvue_50">2.3 在App.vue中引用Index.vue

  • 在App.vue中加入下方第2行、第6行代码
<script setup>
import Index from './views/Index.vue'
</script>

<template>
  <Index></Index>
</template>

<style scoped>

</style>
  • 保存后刷新,即可看到Index.vue中的Hello World!已经显示在页面上了
    在这里插入图片描述

2.4 初始化脚本

  • 将Index.vue中的script脚本改为下方的内容
<script >

    import {defineComponent} from "vue";
    export default defineComponent({
        // 初始执行,类似onLoad
        mounted() {
            console.log("Index.vue 已开始执行。");
        },
        // 数据管理
        data(){
            return {
                message: "123"
            }
        },
        // 方法管理
        methods:{

        }
    })
</script>
  • 保存后,刷新页面,可以在控制(F12 console)中看到日志输出了“Index.vue 已开始执行。”即为成功。

2 模板语法

  • Vue 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
  • Vue 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
  • 结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

2.1 文本绑定

  • 如下,我们再hello world后面加个灵活的内容
  • 全部代码如下,保存后再页面上可以看到内容变为了“Hello World! 123”
  • 其中message部分为scrpit中声明的123,实现了文本绑定
  • 当scrpit中的123发生变化时,页面上的内容也会相应变化
<template>
    <div>
        Hello World!
        {{message}}
    </div>
</template>
<script >
    import {defineComponent} from "vue";
    export default defineComponent({
        // 初始执行,类似onLoad
        mounted() {
            console.log("Index.vue 已开始执行。");
        },
        // 数据管理
        data(){
            return {
                message: "123"
            }
        },
        // 方法管理
        methods:{

        }
    })
</script>
<style scoped>
</style>

3 指令

  • 主要的指令有如下内容
  • 下图来自网络
    在这里插入图片描述

3.1 v-on

  • 解释见上图
  • 先介绍v-on,有利于观察其他的效果
  • 搞个按钮,点击的时候使message发生变化
  • 在div中添加下方代码,按钮
        <button v-on:click="onBtnClick()">点我</button>
  • 在scrpit中的methods中添加如下方法
onBtnClick(){
    this.message = "456";
}
  • 此时点击按钮,就会发现内容变为了456
  • 完整代码如下**(因篇幅较大,本文后方不再展示完整代码)**
<template>
    <div>
        Hello World!
        {{message}}
        <button v-on:click="onBtnClick()">点我</button>
    </div>
</template>
<script >
    import {defineComponent} from "vue";
    export default defineComponent({
        // 初始执行,类似onLoad
        mounted() {
            console.log("Index.vue 已开始执行。");
        },
        // 数据管理
        data(){
            return {
                message: "123"
            }
        },
        // 方法管理
        methods:{
            onBtnClick(){
                this.message = "456";
            }
        }
    })
</script>
<style scoped>
</style>

3.2 v-if

  • 根据值,确定页面内容是否渲染(有、没有)
  • v-if、v-else-if、v-else-if
  • 实现示意如下,type请自行在scrpit的data中编辑
<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>

3.3 v-show

  • 与v-if相似,用于决定显示还是不显示(与v-if的存在和不存在有区别)
  • v-show用得较少

3.4 v-bind

  • 顾名思义,绑定
  • 比如为标签设置id
<div v-bind:id="divIdInScriptData">

3.5 v-model

  • 双向绑定,常用于单选、多选、下拉选、输入框等标签
<input type="text" v-model="txt">

3.6 v-for

  • 对某一标签进行循环展示,常用于表格
<li v-for="(item, index) in list">
   {{ index }} -{{ item.text }}
</li>

4 结语

  • Vue的核心用法,以上方的内容为主!

http://www.niftyadmin.cn/n/5035482.html

相关文章

Bard人工智能9月19日重大更新

1、巴德现在可以回复来自谷歌地图、航班、酒店和YouTube的实时信息&#xff0c;因此您可以在一个地方完成更多工作。 2、Bard 可能会与其他服务共享您的部分对话和其他相关信息&#xff0c;例如您的位置。这些服务可能会使用该信息进行改进&#xff0c;即使您以后删除了您的 Ba…

校园网web免认真,大量服务器

服务器加满了&#xff0c;没有几个人来&#xff0c;传点图片看实力 什么方法解web认证方式校园网&#xff1f; 一般的校园网是对学生免费开放的&#xff0c;假如你是学生输入学号密码上网就是了&#xff0c;假如你不是那就是想蹭网了&#xff0c;再假如你不想让管理员或上网行为…

sqlserver查询表中所有字段信息

精简 SELECT 字段名 a.name,主键 case when exists(SELECT 1 FROM sysobjects where xtypePK and parent_obja.id and name in (SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id a.id AND colida.colid))) then √ else …

vue3 element plus获取el-cascader级联选择器选中的当前结点的label值 附vue2获取当前label

各位大佬&#xff0c;有时我们在处理级联选择组件数据时&#xff0c;不仅需要拿到id,还需要拿到label名称&#xff0c;但是通常组件直接绑定的是id,所以就需要我们用别的方法去拿到label,此处官方是有这个方法的&#xff0c;具体根据不同的element 版本进行分别处理。 VUE3 e…

Android Studio CMake 中的 aux_source_directory 有什么作用?

Android Studio CMake 中的 aux_source_directory 有什么作用&#xff1f; Author: Lycan Note: 以下问题解答通过大模型生成&#xff0c;主要用于个人学习和备忘&#xff0c;仅供参考&#xff0c;若有错误或者侵权&#xff0c;请联系我修正&#xff0c;谢谢。 问题 Android…

微服务如何改变软件开发:实战经验与最佳实践分享

文章目录 什么是微服务&#xff1f;微服务实战经验1. 定义明确的服务边界2. 使用API网关3. 自动化部署和持续集成4. 监控和日志记录 微服务最佳实践1. 文档和通信2. 弹性设计3. 安全性4. 版本控制5. 监控和警报 微服务的未来 &#x1f389;欢迎来到架构设计专栏~微服务如何改变…

Android SurfaceFlinger导读(01)MessageBase

该系列文章总纲链接&#xff1a;Android GUI系统之SurfaceFlinger 系列文章目录 说明&#xff1a; 关于导读&#xff1a;导读部分主要是方便初学者理解SurfaceFlinger代码中的机制&#xff0c;为后面分析代码打下一个更好的基础&#xff0c;这样就可以把更多的精力放在surfac…

[C++随笔录] string模拟实现

string模拟实现 基本结构天选之子构造函数析构函数拷贝构造函数 空间size()函数capacity()函数clear()函数empty()函数reverse()函数resize()函数 迭代器iteratorbegin()函数end()函数 const_iteratorbegin()函数end()函数 增push_back()函数append()函数operatorinsert()函数 …