Vue的简单入门 一

news2025/2/20 5:29:17

声明:本版块根据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
<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,该属性就会从渲染的元素上移除。
<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非常常用,提供了一种简写写法。
<div :id=”dynamicId” >动态绑定<div>
3.按钮是否失活,需要将属性定义为布尔属性。
:disabled=“isButtonDisabled”



isButtonDisabled : true,
4.绑定多个值,可以用对象来操作
<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 

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

<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
<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
<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是迭代项的别名。 

<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的迭代器语法。 

<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.coloradmin.cn/o/2299521.html

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

相关文章

VMware Workstate 的 Ubuntu18 安装 vmware tools(不安装没法共享)

在共享主机路径后&#xff0c;可以在&#xff1a; /mnt/hgfs/下方找到共享的文件。但没有安装vmware tool时是没法共享的。 如何安装vmware tool&#xff0c;网上版本很多。这里记录一下&#xff1a; VMware Workstation 17 Pro&#xff0c;版本&#xff1a;17.6.0 虚拟机系统…

GC 基础入门

什么是GC&#xff08;Garbage Collection&#xff09;&#xff1f; 内存管理方式通常分为两种&#xff1a; 手动内存管理&#xff08;Manual Memory Management&#xff09;自动内存管理&#xff08;Garbage Collection, GC&#xff09; 手动内存管理 手动内存管理是指开发…

UE求职Demo开发日志#32 优化#1 交互逻辑实现接口、提取Bag和Warehouse的父类

1 定义并实现交互接口 接口定义&#xff1a; // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "UObject/Interface.h" #include "MyInterActInterface.generated.h…

如何在 Mac 上解决 Qt Creator 安装后应用程序无法找到的问题

在安装Qt时&#xff0c;遇到了一些问题&#xff0c;尤其是在Mac上安装Qt后&#xff0c;发现Qt Creator没有出现在应用程序中。通过一些搜索和操作&#xff0c;最终解决了问题。以下是详细的记录和解决方法。 1. 安装Qt后未显示Qt Creator 安装完成Qt后&#xff0c;启动应用程…

多线程基础面试题剖析

一、线程的创建方式有几种 创建线程的方式有两种&#xff0c;一种是继承Thread&#xff0c;一种是实现Runable 在这里推荐使用实现Runable接口&#xff0c;因为java是单继承的&#xff0c;一个类继承了Thread将无法继承其他的类&#xff0c;而java可以实现多个接口&#xff0…

Android设备 网络安全检测

八、网络与安全机制 6.1 网络框架对比 volley&#xff1a; 功能 基于HttpUrlConnection;封装了UIL图片加载框架&#xff0c;支持图片加载;网络请求的排序、优先级处理缓存;多级别取消请求;Activity和生命周期的联动&#xff08;Activity结束生命周期同时取消所有网络请求 …

神经网络的学习 求梯度

import sys, ossys.path.append(os.pardir) import numpy as npfrom common.functions import softmax, cross_entropy_error from common.gradient import numerical_gradient# simpleNet类 class simpleNet:def __init__(self):self.W np.random.rand(2, 3) # 随机形状为2*…

AI向量数据库之LanceDB快速介绍

LanceDB LanceDB 是一个开源的向量搜索数据库&#xff0c;具备持久化存储功能&#xff0c;极大地简化了嵌入向量的检索、过滤和管理。 LanceDB的主要特点 LanceDB 的主要特点包括&#xff1a; 生产级向量搜索&#xff1a;无需管理服务器。 存储、查询和过滤向量、元数据以…

CentOS7 安装配置FTP服务

CentOS7 安装配置FTP服务 CentOS7 安装配置FTP服务1. FTP简介2. 先行准备2.1 关闭防火墙2.2 关闭 SELinux 3.安装FTP软件包4. 创建 FTP 用户及目录4.1 创建 FTP 目录并设置权限4.2 防止 FTP 用户登录 Linux 终端4.3 创建 FTP 用户组及用户4.4 创建 FTP 可写目录 5. 配置ftp服务…

【设计模式】03-理解常见设计模式-行为型模式(专栏完结)

前言 前面我们介绍完创建型模式和创建型模式&#xff0c;这篇介绍最后的行为型模式&#xff0c;也是【设计模式】专栏的最后一篇。 一、概述 行为型模式主要用于处理对象之间的交互和职责分配&#xff0c;以实现更灵活的行为和更好的协作。 二、常见的行为型模式 1、观察者模…

编程题-最大子数组和(中等-重点【贪心、动态规划、分治思想的应用】)

题目&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。 解法一&#xff08;枚举法-时间复杂度超限&#xff09;&#xff1a; …

本地通过隧道连接服务器的mysql

前言 服务器上部署了 mysql&#xff0c;本地希望能访问该 mysql&#xff0c;但是又不希望 mysql 直接暴露在公网上 那么可以通过隧道连接 ssh 端口的方式进行连接 从外网看&#xff0c;服务器只开放了一个 ssh 端口&#xff0c;并没有开放 3306 监听端口 设置本地免密登录 …

2. grafana插件安装并接入zabbix

一、在线安装 如果不指定安装位置&#xff0c;则默认安装位置为/var/lib/grafana/plugins 插件安装完成之后需要重启grafana 命令在上一篇讲到过 //查看相关帮助 [rootlocalhost ~]# grafana-cli plugins --help //从列举中的插件过滤zabbix插件 [rootlocalhost ~]# grafana…

Linux第107步_Linux之PCF8563实验

使用PCF8563代替内核的RTC&#xff0c;可以降低功耗&#xff0c;提高时间的精度。同时有助于进一步熟悉I2C驱动的编写。 1、了解rtc_time64_to_tm()和rtc_tm_to_time64() 打开“drivers/rtc/lib.c” /* * rtc_time64_to_tm - Converts time64_t to rtc_time. * Convert seco…

功能说明并准备静态结构

功能说明并准备静态结构 <template><div class"card-container"><!-- 搜索区域 --><div class"search-container"><span class"search-label">车牌号码&#xff1a;</span><el-input clearable placeho…

[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】

大家好&#xff0c;我是老师&#xff0c;看到一个不错的SpringBoot公益众筹爱心捐赠系统&#xff0c;分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前&#xff0c;当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及&#xff0c;本文旨在探讨公益事业…

ML.Net二元分类

ML.Net二元分类 文章目录 ML.Net二元分类前言项目的创建机器学习模型的创建添加模型选择方案训练环境的选择训练数据的添加训练数据的选择训练数据的格式要预测列的选择模型评估模型的使用总结前言 ‌ML.NET‌是由Microsoft为.NET开发者平台创建的免费、开源、跨平台的机器学习…

visutal studio 2022使用qcustomplot基础教程

编译 下载&#xff0c;2.1.1版支持到Qt6.4 。 拷贝qcustomplot.h和qcustomplot.cpp到项目源目录&#xff08;Qt project&#xff09;。 在msvc中将它俩加入项目中。 使用Qt6.8&#xff0c;需要修改两处代码&#xff1a; L6779 # if QT_VERSION > QT_VERSION_CHECK(5, 2, …

本地搭建自己的专属客服之OneApi关联Ollama部署的大模型并创建令牌《下》

这里写目录标题 OneApi1、渠道设置2、令牌创建 配置文件修改修改配置文件docker-compose.yml修改config.json到此结束 上文讲了如何本地docker部署fastGtp&#xff0c;相信大家也都已经部署成功了&#xff01;&#xff01;&#xff01; 今天就说说怎么让他们连接在一起 创建你的…

【C】初阶数据结构4 -- 双向循环链表

之前学习的单链表相比于顺序表来说&#xff0c;就是其头插和头删的时间复杂度很低&#xff0c;仅为O(1) 且无需扩容&#xff1b;但是对于尾插和尾删来说&#xff0c;由于其需要从首节点开始遍历找到尾节点&#xff0c;所以其复杂度为O(n)。那么有没有一种结构是能使得头插和头删…