IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue基础大全,粗略描述 -> 正文阅读

[JavaScript知识库]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、父组件向子组件传值

下面介绍 父组件如何向子组件传值,主要是用到了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>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:33:25  更:2021-07-11 16:35:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 17:55:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码