Vue 进阶二 | 系统性学习 | 无知的我费曼笔记

news2024/11/19 8:29:58

无知的我正在复盘Vue
该笔记特点是

  • 重新整理了涉及资料的一些语言描述、排版而使用了自己的描述
  • 对一些地方做了补充说明。比如解释专有名词、类比说明、对比说明、注意事项
  • 提升了总结归纳性。尽可能在每个知识点上都使用一句话 || 关键词概括
  • 更注重在实际上怎么应用
  • 提出并回答了一些问题

下面的图片是我用思维导图总结的vue知识

路由

文章目录

    • Vue 进阶二
      • 一、Vue中的表单
        • 1.v-model修饰符
        • 2.使用v-model绑定表单控件,v-model修饰符
      • 二、http请求--ajax
        • 1. 什么是 Axios
        • 2.为什么要使用 Axios
        • 3.Axios的使用
          • 1)安装vue axios
          • 2)在main.js中引入
          • 3)发送ajax请求
          • 4)服务端解决跨域问题
          • 5)解决axios无法传递data中的参数问题
      • 三、路由
        • 1.安装路由模块
        • 2.设计路由界面
        • 3.创建静态路由表
        • 4.引入路由模块并使用
        • 5.路由初体验
        • 6.链接路由的实现
        • 7.参数的传递
        • 8.程序式路由的实现

Vue 进阶二

一、Vue中的表单

1.v-model修饰符

创建表单,并通过v-model绑定data中的属性

<template>
  <div id="app">
    <div style="width:50%" class="container">
    	<div>
    		<h3>Regist</h3>
    		<h5>Email</h5>
    		<input type="text" class="form-control" v-model.trim="mail" /><br />
    		{{mail}}
    		<h5>Password</h5>
    		<input type="password" class="form-control" v-model.lazy="password" /><br />
    		{{password}}
    		<h5>Gender</h5>
    		<input type="radio" name="gender" v-model="gender" value="female" /><input type="radio" name="gender" v-model="gender" value="male" /><br />
    		<h5>Hobby</h5>
    		<input type="checkbox" name="hobby" v-model="hobby" value="music">音乐
    		<input type="checkbox" name="hobby" v-model="hobby" value="movie">电影
    		<input type="checkbox" name="hobby" v-model="hobby" value="sport">运动
    		{{hobby}}
    	</div>
    </div>
  </div>
</template>

<script>
export default {
	data(){
		return {
			mail:"xxx@126.com",
			password:"",
			gender:"",
			hobby:[]	
		}
	},
	methods:{
		changeName:function(name){
			this.name = name
		}
	}
}
</script>

2.使用v-model绑定表单控件,v-model修饰符

  • lazy:失去焦点时才会绑定内容
  • trim: 绑定的内容自动去除开头和结尾的所有的空格,字符串内部的空格不去除。

二、http请求–ajax

1. 什么是 Axios

Axios 是一个开源的可以用在浏览器端和 NodeJS 的异步通信框架,她的主要作用就是实现 AJAX 异步通信,其功能特点如下:

  • 从浏览器中创建 XMLHttpRequests
  • node.js 创建 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换 JSON 数据
  • 客户端支持防御 XSRF(跨站请求伪造)

GitHub:https://github.com/axios/axios

2.为什么要使用 Axios

由于 Vue.js 是一个 视图层框架 并且作者(尤雨溪)严格准守 SoC (关注度分离原则),所以 Vue.js 并不包含 AJAX 的通信功能,为了解决通信问题,作者单独开发了一个名为 vue-resource 的插件,不过在进入 2.0 版本以后停止了对该插件的维护并推荐了 Axios 框架

3.Axios的使用

1)安装vue axios
npm install --save axios vue-axios
2)在main.js中引入

在项目中使用axios模块

import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'

Vue.use(VueAxios, axios)
3)发送ajax请求
this.axios({
  method:'get',
  url:'http://bit.ly/2mTM3nY',
  data:{}
})
  .then(function (response) {
    console.log(response.data)
  });
4)服务端解决跨域问题
<mvc:cors>  
    <mvc:mapping path="/**"
        allowed-origins="*"
        allowed-methods="POST, GET, OPTIONS, DELETE, PUT,PATCH"
        allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
        allow-credentials="true" />
</mvc:cors>

在spring-mvc.xml中加入上述这一段。其中,allowed-origins指的是允许的访问源的域名,"*"表示任何人都可以访问,也可以指明具体的域名

5)解决axios无法传递data中的参数问题

原因:默认情况下发送axios时请求头中的内容类型为:

Content-Type:application/json;charset=UTF-8

而实际服务端需要的是:

Content-Type:application/x-www-form-urlencoded

因此,使用axios的qs内置库中的方法进行内容类型的转换。

import Qs from 'qs'

this.axios({
	method:'post',
	url:'http://localhost:8081/regist',
	transformRequest: [function (data) {
		return Qs.stringify(data)
	}],
	data:{
		email:this.email
	}
})
.then(function (response) {
	alert(response.data.message)
});

三、路由

路由是第三方模块提供

1.安装路由模块

npm install vue-router -s

2.设计路由界面

创建components文件夹,文件夹内分别创建user、Home组件

  • user.vue
<template>
	<div>user</div>
</template>
  • Home.vue
<template>
	<div>Home</div>
</template>

3.创建静态路由表

在src下创建routes.js

import Home from '@/components/Home.vue'
import User from '@/components/user/user.vue'

export const routes = [
	{path:'/',component:Home},
	{path:'/user',component:User}
]

4.引入路由模块并使用

在main.js中引入路由模块并使用

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router' //1.引入路由模块
import {routes} from './routes'	//2.引入静态路由表

Vue.use(VueRouter); //3.使用路由模块

//4.创建一个VueRouter模块的实例
const router = new VueRouter({
	routes:routes
});

new Vue({
  el: '#app',
  router,//5.把router实例放入到vue实例中
  render: h => h(App)
})

5.路由初体验

App.vue

<template>
  <div class="container">
		<div class="row">
			<div class="col-xs-12 col-sm-8">
				<h1>Routing</h1>
				<router-view></router-view>
			</div>
		</div>
	</div>
</template>

改变url,发现中的内容发生改变

  • http://localhost:8080/#/ 显示home
  • http://localhost:8080/#/user 显示user

向router实例中添加mode属性:

  • 值"hash": url带# 适用于调试模式
  • 值"history" url不带#

6.链接路由的实现

创建Header.vue

<template>
	<ul class="nav nav-pills">
		<router-link to="/" tag="li" active-class="active" exact><a>Home</a></router-link>
		<router-link to="/user" tag="li" active-class="active"><a>User</a></router-link>
	</ul>
</template>

修改App.vue

<template>
  <div class="container">
		<div class="row">
			<div class="col-xs-12 col-sm-8">
				<h1>Routing</h1>
				<Home></Home>
				<router-view></router-view>
			</div>
		</div>
	</div>
</template>
<script>
	import Home from '@/components/Header.vue'
	export default{
		components:{"Home":Home}
	}
</script>

7.参数的传递

Header.vue传入参数

<template>
	<ul class="nav nav-pills">
		<router-link to="/" tag="li" active-class="active" exact><a>Home</a></router-link>
		<router-link to="/user/10" tag="li" active-class="active"><a>User</a></router-link>
	</ul>
</template>

路由表:router.js

export const routes = [
	{path:'/',component:Home},
	{path:'/user/:id',component:User}
]

修改user.vue

<template>
	<div>
	<div>user</div>
	<p>userId:{{id}}</p>
	</div>
</template>
<script>
	export default{
		data(){
			return {
				id:this.$route.params.id
			}
		}
	}
</script>

8.程序式路由的实现

在user.vue中加入回到首页按钮

<template>
	<div>
		<div>user</div>
		<p>userId:{{id}}</p>
		<button type="button" @click="goHome" class="btn btn-default btn-block">回到首页</button>
	</div>
</template>
<script>
	export default{
		data(){
			return {
				id:this.$route.params.id
			}
		},
		methods:{
			goHome(){
				this.$router.push({path:'/'})
			}
		}
	}
</script>

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

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

相关文章

数据可视化之卡塔尔世界杯,世界杯8强全部出炉,你看好那支队伍?

2022年下半年可算是集结了众多国际赛事&#xff0c;前有csgo major&#xff0c;英雄联盟总决赛&#xff0c;后有斯诺克英锦赛。当然这些赛事里面最万众瞩目的就是4年一度的卡塔尔世界杯了。本届世界杯开赛前最大的看点就是世界杯的花费&#xff0c;卡塔尔2022年世界杯花费2290亿…

他让我看重采样

周末邓总让我帮忙看下重采样的代码&#xff0c;然后我就用上了自己的神器。我的神器就是Google之后总结了下代码&#xff0c;完整的代码可以往下看&#xff0c;我们平时也会用到重采样&#xff0c;通道转换、交织和非交织的相互转换、给音频重新map等等。这些都是做音频需要搞的…

(红帽系统)redhat7.2 相关服务器配置

远程连接服务器配置 简介 使用SSH可以在本地主机和远程服务器之间进行加密的传输数据&#xff0c;实现数据的安全传输。而OpenSSH是SSH协议的免费开源实现&#xff0c;它采用安全加密的网络连接工具代替了telnet、ftp等 实现步骤 第一步 进入红帽系统 第二步 检查安装系统时…

需求处理的流程及问题挑战

本文主要讲需求的一般处理流程&#xff0c;以及可能存在的问题及挑战。 一、需求处理流程&#xff1a; 1、需求的生命周期&#xff1a; 起点是提需求&#xff0c;终点是拒绝或接受需求。每个人希望自己的需求能被接受或满足&#xff0c;但资源总是有限的。每个需求从产生到实…

SRM系统的国内品牌前五名是哪几家,大概价位是多少?

SRM系统的国内品牌前五名是哪几家&#xff0c;大概价位是多少&#xff1f;SRM系统是采购数字化转型过程中的产物&#xff0c;SRM系统与ERP与SCM系统打通后&#xff0c;能够破除信息壁垒&#xff0c;增加采购部门与业务部门的沟通效率&#xff0c;从而实现企业人、物、财成本的降…

JavaSE——多线程详细

目录 一、多线程 1.1 基本介绍 1.2 进程和线程的关系 1.3 多线程并发概念 二、实现线程的方式 2.1 继承Thread类 2.2 实现java.lang.Runnable接口 2.3 匿名类 2.4 实现Callable接口&#xff08;JDK8新特性&#xff09; 2.5 run和start的区别 2.6 线程声明周期 三、…

双非本科怎么了,照样拿到阿里 offer! 分享阿里技术四面 + 交叉面 +HR 面难忘经历

说一下 java 类加载器的工作机制&#xff1f;类加载在哪个区域进行的&#xff1f; 说一下 java 的线程模型&#xff1f; violate 了解吗&#xff1f;它的原理是什么&#xff1f;violate 是线程安全的吗&#xff1f; 保证线程安全的解决方法有哪些&#xff1f;说一说读写锁吧…

前端高频手写面试题总结

实现字符串的repeat方法 输入字符串s&#xff0c;以及其重复的次数&#xff0c;输出重复的结果&#xff0c;例如输入abc&#xff0c;2&#xff0c;输出abcabc。 function repeat(s, n) {return (new Array(n 1)).join(s); }递归&#xff1a; function repeat(s, n) {return…

通过 JFR 与日志深入探索 JVM - TLAB 原理详解

什么是 TLAB&#xff1f; TLAB&#xff08;Thread Local Allocation Buffer&#xff09;线程本地分配缓存区&#xff0c;这是一个线程专用的内存分配区域。既然是一个内存分配区域&#xff0c;我们就先要搞清楚 Java 内存大概是如何分配的。 我们一般认为 Java 中 new 的对象…

模板模式

文章目录思考模板模式1.模板模式的本质2.何时选用模板模式3.优缺点4.模板方法的结构5.实现思考模板模式 模板模式其实就是抽离共用方法到抽象类中&#xff0c;然后再规定其具体实现步骤 1.模板模式的本质 模板方法模式的本质:固定算法骨架。 模板方法模式主要是通过制定模板&am…

系统集成企业需具备哪些证书?

IT信息化企业&#xff0c;系统集成企业需要做的资质证书有哪些&#xff1f;经常遇到有新成立的系统集成商问智达鑫业小编&#xff0c;该申请哪些企业资质&#xff0c;接下来了小编整理下目前市场上使用频率比较高的一些资质证书&#xff0c;大家可以参考下。 信息系统建设和服务…

A-Level考试常见问题综合解答

关于A Level的Q&A 问&#xff1a;参加A Level的考试与其他考试相比有什么优势吗&#xff1f; 答&#xff1a;A Level考试的门数相较其他国际课程更少&#xff0c;学生有更多的时间花费在每门课上取得更好的GPA和最终成绩。问&#xff1a;就读的学校就直接提供A Level课程&a…

jmeter断言

jmeter断言常用的有响应断言和json断言&#xff1b; 常用的响应断言&#xff1a; 1.字符串&#xff1a;如果响应中包含了指定的字符串&#xff0c;判断为成功&#xff0c;不支持正则表达式&#xff1b;如下图&#xff1a; 2.包括&#xff1a;如果响应中包含了指定的字符串&…

mac清空废纸篓怎么恢复?

众所周知&#xff0c;电脑只要在运行都会产生一些临时文件或者文档&#xff0c;而这些文件会存放在电脑的存储空间里&#xff0c;方便我们后续的使用。当Mac中存储的文件过多时&#xff0c;就会影响到我们的正常使用&#xff0c;只有通过清理电脑文件&#xff0c;来释放更多的存…

【JavaWeb开发-Servlet】拾起海中的漂流瓶超强版

目录 原版&#xff1a; 一、思路&#xff1a; 二、实现&#xff1a; 三、资源分享 四、部署服务器时记得修改文件路径 原版&#xff1a; 【JavaWeb开发-Servlet】拾起海中的漂流瓶增强版_代码骑士的博客-CSDN博客【代码】【JavaWeb开发-Servlet】拾起海中的漂流瓶增强版…

SMART PLC运动超驰功能编程应用(含V2.7版本固件下载)

什么是运动控制超驰功能,运动超驰功能如何开启,请参看下面的导图部分: 下面一步步教大家如何更新CPU固件版本。 S7-200 SMART PLC自定义脉冲控制功能块相关详细组态设置,请参看下面的博客。链接如下: S7-200 SMART PLC自定义脉冲轴控功能块AxisControl_FB(梯形图)_RXX…

.NET(C#、VB)APP开发——Smobiler平台控件介绍:MapView MaptrimView

本文简述如何在Smobiler中使用MapView和MaptrimView。 Mapview MapView 地图插件&#xff0c;可用于显示指定地点地图&#xff0c;显示轨迹等。 Step 1. 新建一个SmobilerForm窗体&#xff0c;再拖入MapView和Button&#xff0c;MapView.Size设置&#xff08;300,300&#xf…

Spring Batch 批处理入门案例解析

引言 书接上篇 Spring Batch 批处理入门案例 &#xff0c;上篇带小伙伴们写了一个Spring Batch 入门案例&#xff0c;里面有哪些注意要点呢&#xff1f;本篇一起来分析分析~ 案例解析 整个入门案例核心点有5个&#xff0c;一一来讲解一下 EnableBatchProcessing 批处理启动…

AD8226组成的高精度放大电路之一

工业设备中常常需要用到高速、高精度的模拟前端方案,而其中控制系统中的信号电平通常为以下几类之一:单端电流(4 mA 至 20 mA)、单端差分电压(0 V 至 5V、0 V 至10 V、5 V、10 V)或者来自热电偶或称重传感器等传感器的小信号输入。大共模电压摆幅也非常典型,尤其是小信号…

Spring Cloud Zuul过滤器介绍及使用(传递数据、拦截请求和异常处理)

在教程《Zuul网关的介绍及使用》中一开始就介绍过&#xff0c;Zuul 可以实现很多高级的功能&#xff0c;比如限流、认证等。想要实现这些功能&#xff0c;必须要基于 Zuul 给我们提供的核心组件“过滤器”。下面我们一起来了解一下 Zuul 的过滤器。 过滤器类型 Zuul 中的过滤…