Vue的简单入门 一

embedded/2025/2/15 8:16:09/

声明:本版块根据B站学习,创建的是vue3项目,用的是vue2语法风格,仅供初学者学习。

目录

 一、Vue项目的创建

1.已安装15.0或更高版本的Node.js   

2.创建项目

二、 简单认识目录结构

三、模块语法中的指令

 1.v-html

1.文本插值(最基本的语法)使用的是双大括号语法

 2.双大括号将会将数据插值为纯文本,而不是html。如果想插入html,需要使用v-html

 2.v-bind 属性绑定

 1.如果绑定值为null或者undefined,该属性就会从渲染的元素上移除。

2. 由于v-bind非常常用,提供了一种简写写法。

3.按钮是否失活,需要将属性定义为布尔属性。

4.绑定多个值,可以用对象来操作

 3.条件渲染

1.v-if 

​编辑 2.v-else

3.v-else-if

4.v-show 与 v-if

4.列表渲染

1.v-for

 5.通过key管理状态


 一、Vue项目的创建

1.已安装15.0或更高版本的Node.js   

node -v  #查看版本号

2.创建项目

我的出现这种情况是因为淘宝的镜像源证书过期了。

更换镜像源,查看是否更换,再次执行

npm使用国内淘宝镜像(最新地址)_npm最新淘宝镜像-CSDN博客

项目名称小写

后面默认是no,用到什么就选yes,

按照要求执行命令,当执行npm install时出现警告 

警告信息就是:required(需要) node.js版本是18.0.0或者20.0.0以上的,但是current(当前)是16.18.1

 继续执行npm run dev时开始报错 

 解决方案:我是去node官网选择20以上版本下载安装的。

环境变量自动配置 

安装完毕后查看版本 

重新cd 到vue-test目录下执行命令。(把node_modules文件删了,重新执行npm install 和 npm run dev就好了)

到这里,就成功创建Vue3项目了。 

二、 简单认识目录结构

Vuex项目目录结构

Npm install的作用就是创建 node_modules文件 

三、模块语法中的指令

 1.v-html

1.文本插值(最基本的语法)使用的是双大括号语法
 2.双大括号将会将数据插值为纯文本,而不是html。如果想插入html,需要使用v-html
javascript"><template><h3>模板语法</h3><p>{{msg}}</p><p>{{n+1}}</p><p>{{ok?"yes":"no"}}</p><p>{{message.split("").reverse().join("")}}</p><p>属性:<span>{{w}}</span></p><p>属性:<span v-html="w"></span></p><!-- 支持单一表达式 -->
</template>
<script >
export default{data(){return{n:1,msg:"语法",ok:true,message:"forever",w:"<a href=www.bilibili.com>bilibili</a>"}}
}
</script>

 运行结果

 2.v-bind 属性绑定

 1.如果绑定值为null或者undefined,该属性就会从渲染的元素上移除。
javascript"><template>
<div class="{{msg}}">hello world!</div>
<div v-bind:class="msg">hello world!</div>
<div v-bind:class="msg1">hello world!</div></template>
<script >
export default{data(){return{
msg:"active",
msg1:null}}
}
</script>

运行结果

2. 由于v-bind非常常用,提供了一种简写写法。
javascript"><div :id=”dynamicId” >动态绑定<div>
3.按钮是否失活,需要将属性定义为布尔属性。
javascript">:disabled=“isButtonDisabled”isButtonDisabled : true,
4.绑定多个值,可以用对象来操作
javascript"><template><div class="{{msg}}">hello world!</div><div v-bind:class="msg">hello world!</div><div v-bind:class="msg1">hello world!</div><div v-bind="Object">HelloWorld!</div></template><script >export default{data(){return{msg:"active",msg1:null,Object:{class:"appclass",id:"appid"}}}}</script>

 运行结果

 3.条件渲染

1.v-if 

该指令用于条件性的渲染一块内容。这块内容只有在指令的表达式返回值为真时才会被渲染。 

javascript"><template><span v-if="flag">条件渲染1</span><span v-if="!flag">条件渲染2</span>
</template><script>
export default{data () {return{flag: true}}
}
</script>

 运行结果如图,第二个并未被渲染

 2.v-else

必须与v-if联合使用,否则会报错

 

3.v-else-if
javascript"><template><span v-if="!flag">条件渲染1</span><span v-else>条件渲染2</span><span v-if="type==='A'">条件渲染A</span><span v-else-if="type === 'B'">条件渲染B</span><span v-else-if="type === 'C'">条件渲染C</span><span v-else>条件渲染D</span></template><script>
export default{data () {return{flag: true,type:'D'}}
}
</script>

运行结果

4.v-show 与 v-if
javascript"><template><span v-if="!flag">条件渲染1</span><span v-else>条件渲染2</span><span v-if="type==='A'">条件渲染A</span><span v-else-if="type === 'B'">条件渲染B</span><span v-else-if="type === 'C'">条件渲染C</span><span v-else>条件渲染D</span><div v-show="flag">条件渲染 v-show</div><div v-show="!flag">条件渲染 v-show</div></template><script>
export default{data () {return{flag: true,type:'D'}}
}
</script>

运行结果 

v-if和v-show的区别:

简而言之就是:

v-if 首次为假时,不做任何事。只有首次为真时,才会被渲染。真变假时,事件监听器和子组件都会被销毁与重建。在运行时条件很少改变,则v-if更加合适。

v-show 始终渲染。频繁切换用v-show。开销低

4.列表渲染

1.v-for

v-for指令基于一个数组来渲染一个列表。V-for指令的值需要使用 item in items 的形式的特殊语法,其中 items 是源数据的的数组,而item是迭代项的别名。 

javascript"><template><h2>列表渲染</h2><div><p v-for="i in names" :key="i">{{i}}</p></div><div v-for="i in result" :key="i"><p>{{i.name}}</p><img :title="i.title"></div></template><script>export default{data () {return{names:[1,2,3],result:[{name:"a" ,title :"a"},{name:"b" ,title :"b"},{name:"c" ,title :"c"}]}}}</script>

运行结果

也可以是(value,key,index) 三个值的顺序是默认顺序

可以使用of代替in,更接近JavaScript的迭代器语法。 

javascript"><template>
<h2>列表渲染</h2><!-- 三个值的顺序是默认顺序 --><div v-for="(value,key,index) of Student" :key="key">{{value}}-{{key}}-{{index}}</div></template><script>export default{data () {return{Student:{name :"千禧",id: 1,age:18,sex:"man"}}}}</script>

 运行结果

 5.通过key管理状态


http://www.ppmy.cn/embedded/162360.html

相关文章

【C++】C++ 旅馆管理系统(含 源码+报告)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设…

P1226 【模板】快速幂

P1226 【模板】快速幂 题目描述 给你三个整数 a , b , p a,b,p a,b,p&#xff0c;求 a b m o d p a^b \bmod p abmodp。 输入格式 输入只有一行三个整数&#xff0c;分别代表 a , b , p a,b,p a,b,p。 输出格式 输出一行一个字符串 a^b mod ps&#xff0c;其中 a , b…

MacOS使用PhpWebStudy搭建PHP开发环境

mac上的PHP开发环境搭建方式有很多, brew, docker, mamp等, 这里使用最近新出的工具PhpWebStudy来搭建mac上的php开发环境 安装 使用brew安装 brew install phpwebstudy 无法使用brew的话, 可以去官网下载最新版本安装 FlyEnv | Powerful Web Server and Environment Mana…

Windows 11 卸载 Edge

前言 咋说呢&#xff0c;Edge 确实有它好的一面&#xff0c;自带微软翻译速度可观&#xff0c;确实是 Chrome 自带翻译不可用现状下的首选 &#xff08;李玲玲你好啊&#xff09;&#xff0c;但是深度绑定微软生态&#xff0c;而且还挺重&#xff0c;使我最终放弃了使用 Edge&…

蓝桥杯单片机组第十三届初赛试题-程序题(第2批)

题目到官网看即可&#xff0c;有点久了有些细节记不清了&#xff0c;可能以前发的帖子解释详细一点。 这是我单片机初学的时候写的&#xff0c;像代码结构什么的肯定有可以提升的地方&#xff0c;多多包涵&#xff0c;将就看一下。 i2c文件使用官方的&#xff0c;pcf8591函数…

API网关基础知识总结

什么是网关&#xff1f; 微服务背景下&#xff0c;一个系统被拆分为多个服务&#xff0c;但是像安全认证&#xff0c;流量控制&#xff0c;日志&#xff0c;监控等功能是每个服务都需要的&#xff0c;没有网关的话&#xff0c;我们就需要在每个服务中单独实现&#xff0c;这使…

服务器被暴力破解的一次小记录

1. 网络架构 家里三台主机&#xff0c;其他一台macmini 启用ollama运行大模型的服务&#xff0c;主机1用来部署一些常用的服务如&#xff1a;mysql, photoprism等&#xff0c;服务器作为网关部署docker, 并且和腾讯云做了内网穿透。服务器部署了1panel用来管理服务并且监控&…

【C++动态规划】3276. 选择矩阵中单元格的最大得分|2402

本文涉及知识点 C动态规划 LeetCode3276. 选择矩阵中单元格的最大得分 给你一个由正整数构成的二维矩阵 grid。 你需要从矩阵中选择 一个或多个 单元格&#xff0c;选中的单元格应满足以下条件&#xff1a; 所选单元格中的任意两个单元格都不会处于矩阵的 同一行。 所选单元…