其他分享
首页 > 其他分享> > Vue入门

Vue入门

作者:互联网

1.过滤器

是vue为开发者提供的功能,常用于文本的格式化

过滤器可以用在两个地方:茶壶表达式和v-bind属性绑定

过滤器应该被添加在JavaScript表达式的尾部,有"管道符"进行调用

<div id="app">message的值为:{{message | capi}}</div>

1.1注意点

要定义到filters节点下,本质是一个函数

在过滤器函数中,一定要有return值

在过滤器的新参中,就可以获取到"管道符"前面待处理的那个值

1.2私有过滤器和全局过滤器

在filters节点下定义的过滤器,称为"私有过滤器",因为它只能在当前vm实例所控制的了区域内使用

如果想在多个vue实例之间共享过滤器,则可以按照如下的格式定义全局过滤器

Vue.filter('capi',function(str){
	const first = str.charAt(0).toUpperCase()
	const other = str.slice(1)
	return first+other
})

注意点

如果全剧过滤器和私有过滤器名字一致,此时按照"就近原则",调用的是"私有过滤器"

1.3格式化时间过滤器

//声明格式化时间的全局过滤器
	Vue.filter('dataFormat',function(time){
	//1.对time进行格式化处理,得到YYYY-MM-DD HH:mm:ss
	//2.把格式化的结果,return出去
		
	//直接调用dayjs()得到的是当前时间
	//dayjs(给定的日期时间)得到指定的日期
	const dtStr = dayjs(time).format('YYYY-MM-DD HH:mm:ss')
	return dtStr
})

需要导入dayjs的包

1.4连续的多个过滤器

过滤器可以串联使用,但是一般不推荐

{{ item.time | dataFormat |xxx|yyy|zzz}}

1.5过滤器传参

过滤器本质是JavaScript函数,因此可以接收参数

<p>{{message|filter(arg1,arg2)}}</p>

//第一个参数必须是管道符前面待处理的值
//从第二个位置开始接收过滤器传过来的参数
Vue.filter('filter',function(msg,arg1,arg2){

})

1.6兼容性

过滤器只有vue2和vue1支持,在vue3中剔除了过滤器的相关功能

2.侦听器

2.1watch侦听器

watch侦听器允许开发者坚实数据的变化,从而针对数据的变化做特定的操作

2.1.1方法格式的侦听器

watch: {
    //监听username值的变化
    //newVal是"变化后的值",oldVAl是"变化之前的旧值"
    username(newval,oldVal){
        console.log(newVal,oldVal)
    }
}

注意

缺点1:无法在刚进入页面的时候,自动触发

缺点2:如果侦听的是一个对象,如果对象中的属性发生了变化,不会触发侦听器

2.1.2对象格式的侦听器

优点1可以通过immediate选项,让侦听器自动触发

watch:{
	//定义对象格式的侦听器
	username:{
	//侦听器的处理函数
		handler(newVal,oldVal){
			console.log(newVal,oldVal)
		},
		//immediate选项的默认值是false
		//immediate的作用是:控制侦听器是否自动触发一次 	
		immediate: true
	}
}

2.1.2.1深度侦听

优点2:可以通过deep选项,让侦听器深度监听对象中的每个属性的变化

watch:{
	info:{
		handler(newVal){
			console.log(newVal)
		},
		//开启深度监听,只要对象中任何一个属性变化了,都会触发"对象的侦听器"
		deep:true
	}
}

2.1.2.2一步到位监听

//如果要侦听的是对象的子属性的变化,则必须包裹一层单引号
'info.username'(newVal){
	console.log(newVal)	
}

3.计算属性

计算属性指的是通过一系列计算之后,最终得到一个属性值

这个动态计算出来的属性值可以被模块结构或methods方法使用

//所有的计算属性,都要定义到computed节点之下
//计算属性在定义的时候,要定义成"方法格式"
computed:{
	//rgb作为一个计算属性,被定义成了方法格式
	//最终,在这个方法中,要返回一个生成号的rgb(x,x,x)的字符串
	rgb:function(){
		return `rgb(${this.r},${this.g},${this.b})`
	}  
}

特点:

定义的时候,要被定义为方法

在使用计算属性的时候,当普通的属性使用即可

好处:

实现了代码的复用

只要计算属性中依赖的数据源变化了,则计算属性会自动重新求值

4.axios

axios是一个专注于网络请求的库

4.1axios基本使用

4.1.1发起GET请求

axios({
	//请求方式
	method:'get',
	//请求地址
	url:'http://www.liulongbin.top:3006/api/getbooks',
	//URL中的查询函数
	param:{
		id: 1
	}
}).then(function(result){
	console.log(result)
})

4.2.2.发起POST请求

//如果调用某个方法的返回值是Promise实例,则前面可以添加await
//await只能用在被async修饰的方法中
const result = await axios({
	method: 'POST',
	url: 'http://www.liulongbin.top:3006/api/post',
	data:{
		name:'zs',
		age:20
	}
})
console.log(result)

4.3解构赋值

document.querySelector("#btnGet").addEventListener('click',async function(){
	//解构赋值的时候,使用:进行重命名
	//1.调用axios之后,使用async/await进行简化
	//2.使用解构赋值,从axios封装的答对象中,把data属性解构出来
	//3.把解构出来的data属性,使用冒号进行重命名,一般都重命名为{data:res}
	const {data:res} = await axios({
		method:'get',
		url:'http://www.liulongbin.top:3006/api/getbooks',
	})
	console.log(res.data)
})

4.4axios.get

const {data:res} =await axios.get('http://www.liulongbin.top:3006/api/getbooks',{
	params:{id:1}
})
console.log(res)

4.5axios.post

const {data:res} = await axios.post('http://www.liulongbin.top:3006/api/post',{name:'zs',gender:'女'})
console.log(res)

5.单页面应用程序

指的是一个web网站中只有唯一的一个HTML页面,所有功能与交互都在这唯一的一个页面内完成

6.vue-cli

是Vue.js开发的标准工具,它简化了程序员基于webpack创建工程化的Vue项目的过程

安装

npm install -g @vue/cli

在终端下运行如下的命令,创建指定名称的项目

vue create 项目名称

名称建议纯英文

 

 

 

 

 把babel、ESLint等插件放到自己独立的配置文件中

6.1vue项目中src目录的构成

assets文件夹:存放项目中用到的静态资源文件,例如css样式表、图片资源

components文件夹:程序员封装的、可复用的组建,都要放到components目录下

main.js是项目的入口文件,整个项目的运行,要先执行main.js

App.vue是项目的根组件

6.2vue项目运行流程

在工程化的项目中,vue要做的水群去哪个很单纯,通过main.js把App.vue渲染到index.html的指定区域中

App.vue用来编写待渲染的模块区域

index.html中需要预留一个el区域

main.js把App.vue渲染到了index.html所预留的区域中

7.vue组件

组件开发指的是:根据封装的思想,把页面上可重用的UI结构封装为组件,从而方便项目开发和维护

7.1vue中的组件化开发

vue是一个支持组件化开发的前端框架

vue中规定:组件的后缀名是.vue

之前接触到的App.vue文件本质上就是一个vue的组建

7.2vue组件的三个组成部分

每个.vue组件都由3各部分组成,分别是:

template -> 组件的模板结构

<template>
	<div class="test-box">
		<h3>这是用户自定义的Test.vue---{{username}}</h3>
	</div>
</template>

script -> 组件的JavaScript行为

<script>
//默认导出。这是固定写法
export default{
	//data数据源
	//注意 .vue组件中的data不能像之前一样,不能指向对象
	//注意 组件中的data必须是一个函数
	data(){
		//这个return出去的{}中,可以定义数据
		return {
			username: 'admin'
		}
	}
}
</script>

style -> 组件的样式

<style>
.test-box{
	background-color: pink;
}	
</style>

7.3启用less

<style lang="less">
.test-box{
	background-color: pink;
	h3{
		color: red;
	}
}	
</style>

标签:axios,入门,vue,侦听器,Vue,过滤器,data,属性
来源: https://blog.csdn.net/weixin_52993606/article/details/120580414