【vue快速入门】很适合JAVA后端看

news2024/11/22 15:15:49

目录

1.概述

2.环境

3.创建项目

4.指令

4.1.数据域、方法域

4.2.绑定变量

4.3.绑定事件

​编辑

4.4.隐藏和显示

4.5.设置属性

4.6.循环

​编辑

5.组件

6.路由

7.网络请求


1.概述

前端最核心的操作是写业务逻辑以及操作DOM元素,操作DOM元素是很繁琐的事,现在主流的前端JS框架本质上都是在封装屏蔽掉DOM操作,让使用者能更加专注于业务。目前vue分为vue2、vue3两个版本,本文是vue3的快速入门文章。很适合JAVA后端来看。

2.环境

编译器VsCode
依赖管理Node.js,相当于后端的maven。

vscode和node.js的安装网上文章车载斗量,此处不赘述,都是一键安装的软件。

3.创建项目

就像spring boot为我们提供了快速搭建起后端架子的机制一样,vue也为我们提供了一个快速搭建起前端架子的机制——脚手架,用脚手架能够快速的拉起一个vue项目。

1.安装脚手架:

npm install -g @vue/cli

2.创建项目:

vue create 项目名

3.配置:

用create命令来创建项目后,会进入配置步骤,这些步骤中会要求你来选择创建出来的项目进行配置选择。当然不同版本的vue脚手架配配置的步骤不同,创建出来的项目结构也不同,此处以当前最新的5.0.8版本为例。

首先是选择创建vue2,还是vue项目,选择创建vue:

然后会要我们选择一些项目需要开启的特性,比如是否开起对typscript的支持?是否引入路由?是否进行格式检查等等,一般只开以下两个就行:

然后会要我们选择vue的版本号:

选择依赖声明在何处:

项目结构:

5.0.8版本的脚手架创建出来的一个vue项目的结构如下:

src下面是代码,其中app.vue是主组件,hello world.vue是自定义组件。本文的示例均是通过修改hello world组件来演示。

package.json是项目的管理清单,类似于maven的pom.xml。

启动指令:

进到创建的项目文件夹下

npm run serve

4.指令

4.1.数据域、方法域

在聊指令前我们需要先对vue组件的结构有一定认识,就像Java中的一个类一样,一个vue组件中有自己的数据域和方法域,分别用来定义数据和方法。

数据域:

data(){

}

方法域:

methods:{

}

4.2.绑定变量

v-text或者直接用{{变量名}}可以将变量绑定到页面上。

<template>
  <div class="hello">
    <h1 v-text="message"></h1>
    <h1>{{message}}</h1>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  data() {
    return {
      message: "JAVA天下第一",
    };
  }
};
</script>

4.3.绑定事件

vue中用methods(方法域)来装我们自定义的方法,用v-on为元素绑定事件(可简写为@)

事件为原生js支持监听的所有事件,点击、进入、按键按下等等。

<template>
  <div class="hello">
    <button v-on:click="method1('JAVA天下第一!')">谁是世界上最好的编程语言</button>
    <!-- <button @click="method1('JAVA天下第一!')">谁是世界上最好的编程语言</button> -->
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  methods:{
    method1(message){
      alert(message)
    }
  }
};
</script>

4.4.隐藏和显示

用v-show或者v-if通过表达式的方式可以控制组件的显示和隐藏。

<template>
  <div class="hello">
    <div v-show="{statue}">{{message}}</div>
    <div v-show="{age}>=18">{{message}}</div>
    <div v-if="{statue}">{{message}}</div>
    <div v-if="{age}>=18">{{message}}</div>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  data(){
    return{
      statue:false,
      age:17,
      message:"java天下第一"
    }
  }
};
</script>

4.5.设置属性

使用v-bind可以动态绑定属性的值。

<template>
  <div class="hello">
    <div v-bind:style="{backgroundColor:myColor}"></div>
  </div>
</template>

<script>
import { resolveDirective } from 'vue';
export default {
  name: "HelloWorld",
  data(){
    return{
      myColor:"#6DFF33"
    }
  }
};
</script>

4.6.循环

v-for可以去循环一个数组。

<template>
  <div class="hello">
    <ul>
      <li v-for="item in arry">{{item}}</li>
    </ul>
  </div>
</template>

<script>
import { resolveDirective } from 'vue';
export default {
  name: "HelloWorld",
  data(){
    return{
      arry:[1,2,3,4,5]
    }
  }
};
</script>

5.组件

组件,封装一组标签,内含一套HTML+CSS+JS,便于复用。

每一个.vue文件就是一个组件,组件通过export的方式对外进行发布。

如下,我们先定义一个名为HelloWorld的组件然后导出:

<template>
  <div class="hello">
    <ul>
      <li v-for="item in arry">{{item}}</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  data(){
    return{
      arry:[1,2,3,4,5]
    }
  }
};
</script>

在要用上面自定义这个组建的地方import,然后使用即可:

<template>
  <HelloWorld msg="Welcome to Your Vue.js App"/>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

6.路由

路由,即点击一个导航,转跳一个组件,比如现在常见的窗体式的前端页面中,点击左边的导航菜单,右边的页面会改变。

vue的路由需要引入vue-router.js。

注意:

本文中的所有三方依赖,诸如router和axios,均用script来引入,当然也可以用npm来引入也是一样的,npm的引入方式网上相关内容车载斗量,文中暂不赘述。

<div id="app">
    <router-link to="/foo">foo</router-link>
    <router-link to="/bar">bar</router-link>
    <router-view></router-view>
</div>

<script src="https://cdn.jsdeliver.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<script>
    //定义组件
    let foo=Vue.component("foo",
    {template:'<div>foo</div>'});

    let bar=Vue.component("bar",
    {template:'<div>bar</div>'});

    //定义路由
    const router = new VueRouter({
        routes: [{
            path:"/foo",
            component:foo
        },
        {
            path:"/bar",
            component:bar
        }
        ]
    })

    let vue=new Vue({
        el:"#app",
        router
    })
</script>

7.网络请求

前端需要去请求后端,网络请求当然是很重要的一块儿,在vue中常用axios进行网络请求,axios其底层封装的ajax。

注意:

本文中的所有三方依赖,诸如router和axios,均用script来引入,当然也可以用npm来引入也是一样的,npm的引入方式网上相关内容车载斗量,文中暂不赘述。

导入依赖:

<script src="http://unpkg.com/axios/dist/axios.min.js"></script>

语法格式:

在vue中使用axios需要注意的是:

每次axios访问以后都会生成一个实例域,因此在axios中通过this没办法直接指到vue组数据域中的数据,因此要使用一个中间变量来指向原来的this。

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

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

相关文章

【【萌新的SOC学习之AXI-DMA环路测试】】

萌新的SOC学习之AXI-DMA环路测试 AXI DMA环路测试 DMA(Direct Memory Access&#xff0c;直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存&#xff0c;而不需中央处理器&#xff08;CPU&#xff09;介入处理。…

NewStarCTF2023week2-include 0。0

简单审一下代码&#xff1a; 1、flag在flag.php 2、使用get请求方式给file传参 3、存在正则匹配&#xff0c;会过滤掉base和rot&#xff08;i表示不区分大小写&#xff0c;也就是我们无法使用大小写绕过&#xff09; 正则匹配详细知识请参考我之前的博客 http://t.csdnimg.…

springboot中如何在测试环境下进行web环境模拟测试

web环境模拟测试 模拟端口 SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT) public class WebTest {Testvoid testRandomPort () {} }

凉鞋的 Godot 笔记 109. 专题一 小结

109. 专题一 小结 在这一篇&#xff0c;我们来对第一个专题做一个小的总结。 到目前为止&#xff0c;大家应该能够感受到此教程的基调。 内容的难度非常简单&#xff0c;接近于零基础的程度&#xff0c;不过通过这些零基础内容所介绍的通识内容其实是笔者好多年的时间一点点…

程序员没有工作经验怎么办?能不能找到工作?

本人一般本科&#xff0c;软件专业。工作8年&#xff0c;目前任一家中型公司技术主管&#xff08;履技术总监的工作&#xff0c;但不敢以总监自居&#xff09; 没经验的同学找工作&#xff0c;面试官看的不是你已经积累了多少&#xff0c;而是看你的态度和学习能力&#xff0c…

springBoot 条件注解

springBoot 条件注解 前言常用的条件注解用例场景用例打印结果 前言 ConditionalOnXxx 如果指定条件成立则指定条件触发 常用的条件注解 ConditionalOnClass: 如果类路径存在这个类&#xff0c;则触发了个行为 ConditionalMissingClass: 如果类路径中不存这个类&#xff0c;…

2023年中国改性聚乙烯产能、产量及市场规模现状分析[图]

聚乙烯&#xff08;PE&#xff09;是五大合成树脂之一&#xff0c;其产量占世界通用树脂总产量的40%以上&#xff0c;是我国合成树脂中产能第三大、进口量最多的品种。2022年中国聚乙烯年产量共计2532万吨万吨&#xff0c;较2021年增幅8.7%。初级形状的聚乙烯进口量895.8万吨&a…

[12 种安卓数据恢复方案] 最佳免费 Android 照片恢复工具榜单

我们用 Android 手机的相机捕捉我们难忘的时刻&#xff0c;并将它们存储在画廊中。但是由于各种原因&#xff0c;照片可能会从 Android 手机中删除。一次丢失所有令人难忘的重要照片对任何人来说都是非常令人沮丧的。但是&#xff0c;可以使用适用于 Android 手机的免费照片恢复…

农场养殖农产品商城小程序搭建

鸡鸭羊牛鱼养殖用户不少&#xff0c;其规模也有大有小&#xff0c;尤其对一些生态养殖企业&#xff0c;其产品需求度更高&#xff0c;同时他们也有实际的销售需求。 由于具备较为稳定的货源&#xff0c;因此大规模多规格销售属性很足。 通过【雨科】平台搭建农场养殖商城&…

APT攻击

1.1 APT攻击简介 1.1.1APT攻击概念 网络安全&#xff0c;尤其是Internet互联网安全正在面临前所未有的挑战&#xff0c;这主要就来自于有组织、有特定目标、持续时间极长的新型攻击和威胁&#xff0c;国际上有的称之为APT&#xff08;Advanced Persistent Threat&#xff09;攻…

Docker学习_存储篇

当以默认的方式创建容器时&#xff0c;容器中的数据无法直接和其他容器或宿主机共享。为了解决这个问题需要学习一些Docker 存储卷的知识。 Docker提供了三种存储的方式。 bind mount共享宿主机文件目录volume共享docker存储卷tmpfs mount共享内存 volume* volume方式是容器…

【数据结构初阶】八、非线性表里的二叉树(二叉树的实现 -- C语言链式结构)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【数据结构初阶】七、非线性表里的二叉树&#xff08;堆的实现 -- C语言顺序结构&#xff09;-CSDN博客 回顾 二叉树的概念及结构&#xff1a; 二叉树的概念 一棵二叉树是节点的一…

sql 常用命令-----增删查改

创建表格 CREATE TABLE table_name(字段一,字段,.......);删除表格 DROP TABLE table_name; 增 INSERT INTO table_name VALUES(字段一值,字段一值,.......); 查 查找字段 SELECT 字段 FROM 表名; 查找表格所有内容 SELECT * FROM 表名; 按条件查找 SELECT * FROM…

【python海洋专题二十】subplots_adjust布局调整

上期读取soda&#xff0c;并subplot 但是存在一些不完美&#xff0c;本期修饰 本期内容 subplots_adjust布局调整 1&#xff1a;未调整布局的 2&#xff1a;调整布局 往期推荐 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深…

一种针对嵌入式KEIL工程的版本管理和跟踪的python脚本

这是去年写的一个python脚本&#xff0c;和KEIL V5配套使用的&#xff0c;借助git对工程文件进行版本管理和跟踪。打包后的exe和源文件整理到网盘了&#xff0c;有需要的可以自取&#xff0c;链接&#xff1a;https://pan.quark.cn/s/6c28fb43e8dc 提取码&#xff1a;R17N 关于…

unity 实现拖动ui填空,并判断对错

参考&#xff1a;https://ask.csdn.net/questions/7971448 根据自己的需求修改为如下代码 使用过程中&#xff0c;出现拖动ui位置错误的情况&#xff0c;修改为使用 localPosition 但是吸附到指定位置却需要用的position public class DragAndDrop : MonoBehaviour, IBeginDr…

OJ第三篇

文章目录 随机链表的复制 随机链表的复制 链接:随机链表的复制 这个题简单而言就是它给一个链表&#xff0c;每个结点包含两个指针&#xff0c;分别指向下一个和一个随机的结点&#xff08;也有可能指向空&#xff09;&#xff0c;你要做的就是复制这个链表&#xff0c;使你创…

Leetcode算法解析——快乐数

1.题目链接&#xff1a;快乐数 2.题目描述&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循…

死锁原因及死锁检测组件的实现

1 死锁形成的条件 死锁&#xff0c;是指多个线程或者进程在运行过程中因争夺有限的系统资源而造成的一种僵局&#xff0c;当进程或者线程处于这种僵持状态&#xff0c;若无外力作用&#xff0c;它们将无法再向前推进。如下图所示&#xff0c;线程 A 想获取线 程 B 的锁&#x…

当你在 Tubi 是一位 Tech Lead

在过去&#xff0c;我们邀请了 Tubi 技术团队的许多资深工程师&#xff0c;听他们分享了作为资深工程师的一些故事。今天&#xff0c;我们将镜头转向那些在 Tubi 担任 Tech Lead 的工程师&#xff0c;他们选择了在独立开发之外&#xff0c;承担一定的技术管理工作&#xff1a; …