vue入门(一)搭建vue项目,基础显示,指令

news/2025/2/15 22:45:55/

之前接触过vue,但是一直不是十分清晰,学的云里雾里,最近打算再次系统的整理一下,重新入门。还是根据vue官方文档一步一步的来,但是是属于简化的那种,会把我的学习过程都记录下来。
1.vue项目的搭建:
首先我是建了一个新的文件夹,然后用vscode打开这个文件夹,在vscode中可以直接打开终端-新建终端输入命令行:

npm init vue@latest

这一步会下载create-vue进来并且给你新建好项目,新建好了之后就根据他的提示继续输入绿色的这几个命令:
在这里插入图片描述
run好了之后打开它给你的网址,就可以打开你的第一个vue项目
下面开始写内容

2.vue入门开发

首先了解一下首页是怎么打开的,我们在文件中看到一个很熟悉的index.html,这里面只有一个div和一个main.js的引用

那么这个div里面放了什么呢,去main.js看一下
在这里插入图片描述

这三个框出来的就是使现在你打开这个项目,首页能显示出来东西的原因
下面介绍一下这三句话

import App from './App.vue' 

这句话的作用是,把App.vue引入到这个js里面来,并给这个组件起名叫App

const app = createApp(App)

然后创建一个App的应用实例,就相当于给App这个类声明了一个新对象叫app

app.mount('#app')   //挂载应用

最后把这个对象放在页面上,这个#app也就是index.html里面的那个div
也就是说,如果想在页面上放一个xxx.vue进来,就要经历这三步
然后官网又说,如果你不想引入xxx.vue进来,也可以自己写,写法就是,在main.js里createApp的时候,自己写一个

const app = createApp({data(){return {count:0}}
})

这个代码的意思就是说,把一个叫count的东西返回给html了,html可以用{{}}的写法去调:

<div id="app"><button @click="count++">{{ count }}</button></div>

但是我在实操的时候这个按钮并没有显示出来,页面渲染完它就消失了,这个问题在于,count的声明并不在index.html里,而在外部挂载的js里,我想到以前做vue的时候,对于不同页面传参是有其他的写法的,所以我把这个button放在了我的test.vue里,并把data也放过去,这样就可以正常显示的

在这里插入图片描述
放在一个vue文件里,是最基础的实现方法,之后会再进阶

3.给vue传变量:这个跟刚才的用法是一样的,再重复一遍,方便记忆
最简单的传字符串:在test.vue里:

<script>
export default {data() {return {msg: 'Hello World!'}}
}
</script><template><div>是我<span>Message: {{ msg }}</span></div>
</template>

4.指令用法
1)v-html
vue把自己定义的一些属性称为指令,这些指令都是放在html的标签里,用来渲染元素,如下:

<span v-html="rawHtml"></span>

这里的v-html就是一个指令,rawHtml是一个data,意思是,rawHtml里面的字符是html,请按照html格式给我显示出来
rawHtml也可以写死,把内容直接写进去也是可以的
2)v-bind

<div v-bind:id="dynamicId"></div>

这个v-bind也是一个指令,意思就是绑定,然后因为它太常用了,vue贴心的给了我们一个语法糖,可以省略掉v-bind,直接写:

<div :id="dynamicId"></div>

这里的dynamicId也是data里的一个属性,也就说,除了html显示的内容可以用data来控制,html本身的属性也是可以用data来控制的,比如disabled之类

<button :disabled="isDisabled" @click="count++">{{ count }}</button>

值得一提的是,这种属性也是可以放在一块绑定的,比如你想给这个标签加好几个属性,可以都放在data的一个属性里,然后一次绑定:

<script>
export default {data() {return {dynamicId:{id:'IamId',class:'IamClass'},}}
}
</script>

绑定的时候直接用v-bind:

<div v-bind="dynamicId"></div>

显示的时候就会把id和class都绑定上:
在这里插入图片描述
3)v-if:控制是否渲染,如果值为false,页面上就不创建这个元素,注意,是连渲染都不渲染哦!根本没有dom元素,而不是控制显示
4)v-on:绑定事件:

<a v-on:click="doSomething"> ... </a><!-- 简写 -->
<a @click="doSomething"> ... </a>

还有一个用法,就是指令的名字也可以动态用data处理:

<a v-on:[eventName]="doSomething"> ... </a>

eventName同样是data里的一个属性,但是经过实测,这样绑定的事件就不会绑定到dom上,应该是vue框架里自己实现的
在这里插入图片描述


http://www.ppmy.cn/news/9324.html

相关文章

下载神器IDM安装与使用(保姆级教程)

下载神器IDM安装与使用&#xff08;保姆级教程&#xff09; 文章目录下载神器IDM安装与使用&#xff08;保姆级教程&#xff09;前言一、下载地址二、IDM是什么&#xff1f;三、作用与特点四、安装步骤总结前言 众所周知&#xff0c;下载工具是大家电脑里必装的软件之一。 但大…

34-剑指 Offer 35. 复杂链表的复制

题目 请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 示例 1&#xff1a; 输入&#xff1a;head [[7,null],[13,0],[11,…

带你深度剖析《数据在内存中的存储》——C语言

文章目录 一、数据类型介绍 二、整型在内存中的存储方式 2、1 原码、反码、补码的讲解 2、2 大小端介绍 2、2、1 大小端的概念 2、2、2 为什么要区分大小端存储呢&#xff1f; 2、2、3 大小端判断练习 三、浮点数在内存中的存储方式 3、1 浮点数在内存中的存储例题 3、2 浮点数…

WuThreat身份安全云-TVD每日漏洞情报-2023-01-04

漏洞名称:TP-Link root 权限执行任意代码 漏洞级别:高危 漏洞编号:CVE-2022-48194,CNNVD-202212-4130 相关涉及:TP-Link TL-WR902AC V3 0.9.1 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2022-26588 漏洞名称:YUI2 跨站点脚本 漏洞级别:低危 漏…

【C++】stack和queue

文章目录前言&#xff08;重点&#xff09;一、stack1、 stack的介绍2、queue的使用3、stack的模拟实现二、queue1、queue的介绍2、queue的使用3、queue的模拟实现三、容器适配器1、什么是容器适配器呢&#xff1f;2、STL标准库中stack和queue的底层结构四、deque1、deque的原理…

Kubeadm + Containerd 部署精简步骤

文章目录系统基础配置kubernetes 组件安装kubeadm 配置拷贝 kubectl 配置TS安装方式&#xff1a;kubeadm 版本&#xff1a;1.23.6 节点数量&#xff1a;2 &#xff08;1 个 Master Worker&#xff0c;1 个 Worker&#xff09; IP&#xff1a; node111&#xff1a;172.18.22.1…

ansible 第三天

1.挂载本地光盘到/mnt 2.配置yum源仓库文件通过多种方式实现 仓库1 &#xff1a; Name: RH294_Base Description&#xff1a; RH294 base software Base urt: file:///mnt/BaseOS 不需要验证钦件包 GPG 签名 启用此软件仓库 仓库 2: Name: RH294_Stream Description &#xff1…

15.2 浏览器中的进程

浏览器中的进程 start 上一篇文章&#xff0c;学习到了如何区分进程和线程。在这里再复习一下&#xff0c;进程类似于一个工厂&#xff0c;线程类似于工厂的工人&#xff0c;一个工厂可以有一个或多个工人。 1. 浏览器的进程 一个浏览器中有很多的进程&#xff0c;我以谷歌…