5、vue基础大全,粗略描述

该文章仅供个人复习,不是重点没有代码示例,代码是在脚手架中运行。

一、基础

1、 生命周期

vue的生命周期描述
beforCreate这里是在初始化数据之前
created初始化数据之后
beforeMount数据和html合并了,但是没有开始渲染
mounted渲染完成之后
beforeUpdate不知道
updated不知道
beforeDestroy不知道
destroyed不知道

2、 基本指令

指令描述
v-if 和 v-else逻辑渲染
v-text文本渲染,缩写是{{}}
v-once文本渲染,只渲染一次
v-for批量渲染
v-bind 或 :绑定标签的属性,支持对象写法或数组写法,缩写是: :class="[类名,{'类名':boolean}]"
v-model双向绑定,如:<input type="text" v-model="a"/> 当输入值的时候,data中的a也会随之input框中的值变化
v-on 或 @事件,如:@click="函数名 | ()=>{}"
v-show显示或者隐藏,内部其实是一个display

二、组件基础

组件基础----->Vue对象的参数:data、watch、filters、computed、methods、components、生命周期钩子函数…下面一一介绍

1、data

1、data必须是一个函数,data是vue注重数据渲染中的数据
使用:----其实也看不出什么
new Vue({
	data(){
		return{
			number: 1
		}
	}
})

2、watch

2、侦听属性watch,它会观察并响应数据--至于响应数据我还不理解是什么
new Vue({
	watch:{
		data中的名称:{
			hander(newval,odlval){ //新的值,旧的值
			},
			deep:true|false,//是否深度侦听
			immediate: true|false //true会从初始值开始侦听,false不会
		}
	},
	// 也可以像下面这样写
	watch:{
		data中的名称(newval,odlval){}
	}
})

3、过滤器filters

3、过滤器filters,其实就是一个模板,比如:我需要在每一个数字上面加上一个元。
// 注意:这里的例子是用脚手架的,懒得换了。
<template>
    <div @click="number++" style="color: white">
        {{number | money}} //使用是用一个  | 加上计算属性的名称,注意这里可以写多个|
    </div>
</template>

<script>
export default {
    data(){
        return{
            number: 1
        }
    },
    filters:{
        money(num){
            return num+'元'
        }
    }
}
</script>

4、计算属性computed

4、计算属性computed,它可以监听到数据的变化,可以完成逻辑运算、算术运算..,和函数调用,最后只要返回一个结果就行了。
那这样描述跟侦听属性都没什么区别了呢,侦听属性也可以做运算和调用函数啊。
这里我主要觉得区别最大的是:
		1、侦听属性只能侦听一个data中的属性,然后计算属性是可以侦听多个属性。
		2、然后侦听属性是可以返回上一个值和新的值,计算属性没有
// 注意:这里的例子是用脚手架的,懒得换了。
<template>
    <div @click="count++" style="color: white">
        {{h | money}}
    </div>
</template>

<script>
export default {
    data(){
        return{
            number: 10,
            count: 10
        }
    },
    filters:{
        money(num){
            return num+'元'
        }
    },
    computed:{
        h:function(){
            return this.number*this.count
        }
    }   
}
</script>

5、methods

5、methods这个是一堆函数的集合,在里面写函数用的

6、components子组件

6、components子组件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        <a-b></a-b> //第四步:使用子组件
    </div>
	
	//第一步、组件模板,里面写html
    <template id="a">
        <div>{{h}}</div>
    </template>
    <script>
    	// 第二步:这里是一个局部注册组件
        let asse = {
            template: '#a',//这里引用模板
            data(){ //数据源
                return {
                    number: 10,
                    count: 10
                }
            },
            computed:{ //计算属性
                h(){return this.number * this.count}
            },
            filters:{
                money(val){return val + '元'}
            }
        }
        new Vue({
            el: '#app',
            data(){return{}},
            components:{'aB': asse}//第三步:-----这里是引入子组件,然后在<div id="app">上使用,主要这里是小驼峰命名,在那边大写字母会被-分开
        })
    </script>
</body>
</html>

7、created生命周期

7、生命周期created钩子函数一搬会在请求后端数据的时候拿来做初始化,数据用的,因为这个时候数据和view是没有进行合并的。

三、父子组件之间传值

这里我的多说一点,了解父子组件之间的传值是必要的。有两个原因
1、在使用别人的组件的时候你会知道人家是怎么把值传出来的
2、自己定义组件的时候你要怎么把值传出来,或者怎么实现数据的增删改查

1、父组件向子组件传值

下面介绍 父组件如何向子组件传值,主要是用到了prop

//----父组件向子组件传值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
    	// 第四步
        <a-b number="1" ></a-b>
    </div>
    // 第一步
    <template id="a">
        <div>
            <div>{{number}}</div>
        </div>
    </template>

    <script>
    	//第二步
        let asse = {
            template: '#a',
            props:['number']
            
        }
        new Vue({
            el: '#app',
            data(){
                return{}
            },
            components:{
                'aB': asse //第三步
            }
        })
    </script>
</body>
</html>

2、子组件向父组件传值

// 子组件向父组件传值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        <a-b number="1" @add="e => getNumber(e)"></a-b>
    </div>

    <template id="a">
        <div>
            <div>{{number}}</div>
            <button @click="addNumber">加一</button>
        </div>
    </template>

    <script>
        let asse = {
            template: '#a',
            props:['number'],
            data(){
                return {num: this.number}
            },
            methods:{
                addNumber(){
                    this.num++
                    // 把事件名称和值抛出去
                    this.$emit('add',this.unm)
                }
            }
        }
        new Vue({
            el: '#app',
            components:{'aB': asse},
            methods:{
                getNumber(e){console.log(e)}
            }
        })
    </script>
</body>
</html>

四、搭建脚手架

1、安装node.js环境

https://blog.csdn.net/qq_45716444/article/details/118664180?spm=1001.2014.3001.5501

2、利用idea搭建脚手架

https://blog.csdn.net/qq_45716444/article/details/116771126?spm=1001.2014.3001.5501

3、利用Vscode搭建脚手架

https://blog.csdn.net/qq_45716444/article/details/117158760?spm=1001.2014.3001.5501

五、使用ant design of vue组件

1、安装组件

使用vsCode或idea安装好脚手架之后,就可以使用一些公开的组件了,这里介绍ant design of vue,官网是https://www.antdv.com/docs/vue/introduce-cn/。先在vsCode的终端执行npm install ant-design-vue --save

2、在main.js中配置

然后在src目录下面找到main.js这个文件,把下面三行复制上去就行了。官网有介绍

import Antd from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css'
Vue.use(Antd)

3、怎么使用这些组件呢

//在src下面创建一个page文件夹,然后在里面创建一个abs.vue文件,然后在src下面
//找到一个router的文件夹,这个router在我们安装脚手架的时候就默认安装了,可以
//好好看看安装脚手架那堆yes no你就会发现了,然后找到index.js,里面的配置在下下面

//然后abs文件里面放下面这些代码
<style scoped>
.spin-content {
  border: 1px solid #91d5ff;
  background-color: #e6f7ff;
  padding: 30px;
}
</style>
// template下面只能存在一个 html标签,然后这个写法就是父子组件传值上面的写法!!!!
<template>
  <div>
   // 加载中组件
    <a-spin tip="Loading...">
      <div class="spin-content">
        我的描述文案是自定义的。。。
      </div>
    </a-spin>
  </div>
</template>

// 路由的配置
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      component: () => import('@/page/abs) //这个是
    }
  ]
})

六、vue路由、拦截器和嵌套路由

https://blog.csdn.net/qq_45716444/article/details/116848264?spm=1001.2014.3001.5501

七、前后端交互的axios

有空写

八、axios的封装思想 – 我们老师指导我的

https://blog.csdn.net/qq_45716444/article/details/118884031

九、Vuex没有父子关系的组件共享数据

有空写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值