Vue基础补充简绍

Vue基础补充简绍

一.Vue的简绍

Vue(读音为"view")是一个用于构建用户界面的渐进式JavaScript框架。它被设计为易于上手,灵活且高效,使开发者能够快速构建交互性强、可复用和可维护的Web应用程序。

Vue的核心思想是通过数据驱动视图,并使用声明式的语法来构建组件化的用户界面。它采用了MVVM(Model-View-ViewModel)的架构模式,将业务逻辑和视图分离,使开发者能够更好地组织和管理代码。

Vue的特点包括:

1.简单易学:Vue的API简洁明了,学习曲线较低,使初学者能够快速上手。

2.组件化开发:Vue提供了组件化开发的能力,使开发者能够将一个页面拆分为多个独立的组件,提高代码的可复用性和可维护性。

3.响应式数据绑定:Vue使用了双向数据绑定的机制,通过响应式的数据绑定,开发者可以很方便地将数据和视图进行关联,使页面的状态与数据保持同步。

4.轻量高效:Vue的体积较小,加载速度快,同时也具有高性能的特点。

5.生态系统丰富:Vue拥有庞大的生态系统,包括丰富的插件、工具和第三方库,使开发者能够更好地构建和扩展应用程序。

二.侦听器

你可以在组件的watch选项中定义属性的侦听器。watch选项可以是一个对象,键是要侦听的属性,值是一个回调函数。

export default {
  data() {
    return {
      message: 'Hello, world!'
    };
  },
  watch: {
    message(newValue, oldValue) {
      console.log(`属性发生变化:${oldValue} => ${newValue}`);
    }
  }
}

我们在组件的watch选项中定义了一个message属性的侦听器。当message属性发生变化时,回调函数会被执行。

三.生命周期函数

生命周期顾名思义就一个对象不同阶段时会自动触发的函数。
1.beforeCreate:在实例初始化之后,数据观测和事件配置之前调用。

2.created:在实例创建完成后立即调用。此时,实例已经完成数据观测,可以访问到数据、计算属性、方法等,并可以进行DOM操作。

3.beforeMount:在挂载开始之前调用。此时,模板编译已经完成,但尚未将模板渲染到真实的DOM中。

4.mounted:在挂载完成后调用。此时,组件已经被渲染到真实的DOM中,可以进行DOM操作。

5.beforeUpdate:在响应式数据发生改变导致重新渲染之前调用。在此钩子函数中,可以访问到更新前的状态,但不能直接修改数据。

6.updated:在响应式数据发生改变导致重新渲染之后调用。在此钩子函数中,可以访问到更新后的状态,可以进行DOM操作。

7.beforeUnmount:在卸载组件之前调用。可以用于清理定时器、取消订阅等操作。

8.unmounted:在卸载完组件后调用。此时,组件已经从DOM中移除,可以进行一些清理工作。

四.自定义指令

定义指令可以用于在DOM元素上添加特定的行为或交互。通过自定义指令,可以扩展Vue的功能,实现一些特定的需求。
通过在Vue实例中的directives选项中注册指令。

directives:{
					hqyj:{
						//钩子
						mounted(el){
							// console.log(el,"6666666666666666")
							el.style.color="#"+Math.random().toString().slice(2,8)
						}
					},
					hot:{
						mounted(el){
							el.innerHTML+="hot"
						}
					},
					size:{
						mounted(el,bind){
							// console.log(el,bind.value)
							bind.value||(bind.value=15)
							el.style.fontSize=bind.value+"px"
						}
					},
					focus:{
						mounted(el){
							el.focus()
						}
					}
				},

五.组件基础

在components中可以定义组件,在template可以定义组件的模板,可以说组件化开发是Vue的核心思想之一。

components: {
					box,
					myhead,
					box2: {
						template: `<div class="box2">
						      <p>box2组件</p>
							  <p :class="x">{{msg}}</p>
							  <button @click="fn">btn</button>		
						 </div>`,
						 data(){
							 return {
								 msg:"hello box2的data"
							 }
						 },
						 methods:{
							 fn(){
								 console.log(66666,this)
							 }
						 },
						 mounted(){
							 console.log(666666,"box2")
						 }
					}
				},

组件可以看作一个另一个相对独立的html文件,拥有自己的方法,数据源,计算属性等。

六.全局指令和全局组件

当牵扯到组件时,就会有局部作用域和全局作用域的说法,在组件外部不可以使用组件数据和方法等等。在组件内部可以使用全局作用域下的数据和方法等等。
全局指令注册:

mport { createApp } from 'vue';

const app = createApp();

// 注册全局指令
app.directive('myDirective', {
  // 指令的生命周期钩子
  mounted(el, binding, vnode) {
    // 指令绑定到元素上时执行的逻辑
  },
  updated(el, binding, vnode, prevVnode) {
    // 元素更新时执行的逻辑
  },
  unmounted(el, binding, vnode) {
    // 指令从元素上解绑时执行的逻辑
  }
});

app.mount('#app');

全局组件注册:

import { createApp } from 'vue';
import MyComponent from './MyComponent.vue';

const app = createApp();

// 注册全局组件
app.component('my-component', MyComponent);

app.mount('#app');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值