首页 > 其他分享 >Vue 学习笔记

Vue 学习笔记

时间:2024-06-10 22:10:55浏览次数:24  
标签:Vue vue 笔记 学习 axios import 组件 router

Vue.js

Vue 常用官网

vue.js

v-charts(图表,地图)

webpack

vue-router

axios

vue-cli

Element-Plus

白卷

npm install -g vue-cli  # 安装 vue 2 脚手架

vue init webpack wj-vue  # 初始化项目,一路回车

npm run dev  # 启动项目

Vue CLI: Vue 官方提供的脚手架工具

npm install @vue/cli -g
vue create hello-vue  # 创建 Vue 项目

页面上使用 Vue,CDN 导入 js 可以用。

从这里开始——创建一个 Vue 实例

  1. 创建 Vue 应用实例
// main.js
import { createApp } from 'vue'  // 从 vue 包中解构出 createApp 函数

const app = Vue.createApp({  // 调用 createApp 函数获得一个 Vue 应用实例。传入 createApp 的对象是一个组件
  data: function() {
    return {
      message: 'HelloWorld'  // 我们用到的变量都放在这里
    }
  }
});
  1. 挂载应用
app.mount('#app');  // 把 app 应用实例挂载到容器元素上,这里提供的是一个 CSS 选择器字符串

模板语法

v- 开头的是指令,指令的值是变量名或者表达式,指令的作用是将变量的值渲染到视图上

<!-- 文本插值 -->
<span>{{ msg }}</span>  <!-- 显示变量 msg 的值 -->

<!-- 原始 HTML -->>
<span v-html="rawHTML"></span>  <!-- 将变量 rawHTML 的值作为 span 标签的 innerHTML 属性值 -->

<!-- 属性绑定 -->
<a v-bind:href="msg">This is a link</a>  <!-- 将 msg 的值作为 href 属性的值 -->
<a :href="msg">This is a link</a>  <!-- 属性绑定的简写形式 -->
<div v-bind="objectOfAttrs"></div>  <!-- 将对象的属性绑定到元素上 -->

<!-- 条件渲染 -->
<span v-if="sex === 'man'">This is a man</span>
<span v-else-if="sex === 'woman'">This is a woman</span>
<span v-else>This is not a human</span>

<!-- 列表渲染(循环) -->
<li v-for="i in items">{{ i.attr }}</li>
<li v-for="(item, index) in items"></li>  <!-- 可以在拿到变量的同时拿到索引 -->

<!-- 事件绑定 -->
<input type="button" v-on:click="function"></input>
<input type="checkbox" @click="function"></input>

<!-- 双向绑定 -->
<!-- 双向绑定意味着,变量的值变了会影响到视图,而视图变了也可以反过来影响变量 -->
<input type="text" v-model="variable"></input>

<!-- 动态参数 -->
<a v-bind:[attrName]="url"></a>  <!-- attrName 是一个变量,假如它的值为 href,那么作用就相当于 v-bind:href="url" -->

Vue 组件化开发

写一个自定义组件:

MyComponent.vue

<!-- 视图 -->
<template>
  <!-- 你要在组件中添加的内容 -->
</template>

<!-- 模型 -->
<script>
// 导入其他组件
import comp1 from './components/comp1.vue'

// 声明组件
export default {
  name: 'MyComponent',  // 组件名
  components: {  // 要使用到的其他组件
    comp1
  },
  props: {  // 需要父组件传进来的值。父组件在调用子组件时通过属性传递该值:<MyComponent msg="abc">
    msg: String
  },
  methods: {
    func() {
      // 你要在组件中使用的方法
    }
  }
}
</script>

<!-- 样式 -->
<style>

</style>

第三方组件 UI

Vue 2: Element UI

Vue 3: Element Plus

Axios 网络请求

Axios 中文网

Axios 是一个 HTTP 库

首先下载 axios,也可以使用 CDN。

npm install axios

在主类中导入 axios

import axios from 'axios'  // 哪一个组件用到了 axios 再导入 axios

使用 axios 发送请求

let tableData = ref([]);  // 让 Vue 追踪 tableData 的变化并触发组件的重新渲染

axios.get("http://localhost:8081/api")  // 发送 GET 请求
  .then((response) => {  // 处理成功情况
    console.log(response);
    tableData.value = response.data;  // 将接收的内容赋值给变量
  })
  .catch(err => {  // 处理失败情况
    console.log(err);
  })
  .then(function() {
    // 总会执行
  })

如果要在处理函数中使用 this 指针的话,

跨域请求

由于同源策略,默认禁止跨域访问。需要在后端 Controller 类上添加 @CrossOrigin 注解以允许跨域。

@RestController
@CrossOrigin  // 使该类中的方法都允许跨域访问
public class HelloController {

路由

Vue Router

路由可以根据 URL 地址,在不同组件之间切换。

安装 Vue Router

npm install vue-router@4

Vue 3 对应 Vue Router 4,Vue 2 对应 Vue Router 3

在主类中导入并使用

import router from 'vue-router'
// 创建 Vue 应用实例……
app.use(router);

在大型项目中一般会把路由规则放到单独的文件中

// router/index.js
import { createRouter, createWebHashHistory } from "vue-router";  // 必须使用解构的方法导入两个函数
import Home from '@/components/Home'  // @ 表示 src 目录
import News from '@/components/News'

// 路由表
const routes = [
  {
    path: '/',
    redirect: '/home'
  },
  {
    path: '/home',  // 路径
    component: Home  // 对应的组件
  },
  {
    path: '/news',
    name: 'News',  // 可以指定路由名称
    component: News
  }
];

// 创建路由实例
const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes,  // routes: routes 的简写
});

export default router;  // 导出路由实例

现在可以开始使用啦

<!-- component/MyComponent.vue -->
<template>
  <div>
    <router-link to="/home">首页</router-link>&nbsp;  <!-- Vue Router 特有的链接 -->
    <router-link to="/news">新闻</router-link>&nbsp;
    <hr>
    <router-view></router-view>  <!-- Vue Router 的显示窗口 -->
  </div>
</template>

可以在 <script> 中使用 this.$router.push('/home') 来跳转路由。

响应式基础

<script setup>
import { ref } from 'vue'

const count = ref(0);  // ref 函数可以把一个变量变成响应式变量并返回

function increment() {
  count.value++;  // 在 JavaScript 中需要 .value,在模板中不需要;count 的变化会影响到模板
}
</script>

样例

标签:Vue,vue,笔记,学习,axios,import,组件,router
From: https://www.cnblogs.com/Undefined443/p/18241130

相关文章

  • 如何在Vue3中使用事件总线实现跨组件通信?
    在复杂的前端开发中,组件之间的通信是必不可少的环节。而在Vue3中,事件总线(EventBus)是一种方便且高效的实现跨组件通信的方法。本文将详细介绍如何在Vue3项目中使用事件总线来实现跨组件通信,并提供实际示例代码,帮助你更好地掌握这一技能。什么是事件总线?事件总线(EventBus)......
  • Java之数据库连接桥梁JDBC学习笔记
    JDBC调用Java与数据库的连接桥梁是JDBC(JavaDatabaseConnectivity)。JDBC是Java编程语言中用于连接和执行数据库操作的API(应用程序编程接口)。它提供了一种标准的方法,允许Java程序与各种数据库(如MySQL、PostgreSQL、Oracle、SQLServer等)进行交互。JDBC主要包括以下几个核......
  • 如何在Vue3中使用动画库实现元素过渡效果?
    在如今充满动态与交互的前端开发世界里,现代网页应用的用户体验越来越依赖于丰富的动画效果。Vue3作为一个强大且灵活的前端框架,支持各种动画库,比如GSAP、Anime.js等,它们能够让动画实现变得简单且强大。本文将通过实例,为大家介绍如何在Vue3中使用动画库实现元素过渡效果。一......
  • TIA Portal软件学习(1)
    1.TIAPortal中关于变量与数据类型:(常用地址包括I\Q\M\L\DB)输入映像寄存器I0.0-10.7(一共可以到32767);输出映像寄存器Q0.0-Q0.7(同上)----由于输入输出是存在一定范围的所以引出了M\L\DB——中间寄存器M(全局):可以在变量表里进行选择格式;临时变量寄存器L(局部)——无法在变量表中进行......
  • 《人月神话》阅读笔记
      《人月神话》是一本深具启发性和指导意义的经典著作,对软件工程领域的种种现象进行了深入的思考和分析。这本书在我看来,不仅是一部技术著作,更是一部关于团队管理、项目管理以及软件开发过程中普遍存在的问题的深刻剖析。在阅读过程中,我深刻体会到了布鲁克斯的洞察力和智慧,也......
  • 《代码大全2》阅读笔记
       最近在《代码大全》这本书,包括的内容非常多,从软件设计到代码开发,团队管理都有,更像是一个软件编程领域的百科全书。   首先,软件构建的复杂性不仅来自于技术方面的挑战,还包括了项目管理、需求变更、团队协作等多个方面。这种复杂性是由项目的规模、技术选型、......
  • MarkDown学习
    MarkDown学习标题标题:#+“”产生标题,一个#为一级标题,两个#为二级标题,以此类推例如:三级标题(##+“”)三级标题字体在字体的两边各加一个*为斜体(Hello,world!)在字体的两边各加两个*为粗体(Hello,world!)在字体的两边各加三个*为粗斜体(Hello,world!)在字体的两边各加两......
  • 【计算机网络】【《计算机网络·自顶向下方法(原书第7版)》笔记】第一章:计算机网络和因
    文章目录@[toc]1.1|什么是因特网1.2|网络边缘接入网家庭接入数字用户线DSL电缆光纤到户FTTH企业(和家庭)接入以太网WiFi广域无线接入物理媒体导引型媒体与非导引型媒体双绞铜线同轴电缆光纤陆地无线电信道卫星无线电信道1.3|网络核心分组交换存储转发传输排队时延和分......
  • 【机器学习】原理与应用场景 Python代码展现
    机器学习:原理、应用与实例深度解析引言一、机器学习的基本原理二、机器学习的应用范围三、机器学习实例解析四、机器学习部分讲解五、机器学习的挑战与未来引言随着大数据和计算能力的飞速发展,==机器学习(MachineLearning,ML)==已成为现代科技领域的热门话题。本文......
  • 深度学习面试问题总结 | Transformer面试问题总结(二)
    本文给大家带来的百面算法工程师是深度学习Transformer的面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们还将介绍一些常见的深度学习算法工程师面试问题,并提供参考的回答及其理论基础,以帮助求职者更好地准备面试。通过......