返回顶部
首页 > 资讯 > 前端开发 > JavaScript >详解Vue进阶构造属性
  • 181
分享到

详解Vue进阶构造属性

2024-04-02 19:04:59 181人浏览 安东尼
摘要

目录1、Directive 自定义指令2、Mixin 混入3、Extends 继承4、provide 和 inject1、Directive 自定义指令 在 Vue 框架下的代码中,

1、Directive 自定义指令

Vue 框架下的代码中,很少用到原生 DOM 操作,那是因为在 Vue 中将原生 DOM 操作都封装成了指令,例如我们前面见到的 <div v-text="xxx"></div> 指令,其实其内部操作就是:

div.innerText = xxx; //当然这里的 div 是获取得来的 DOM 元素

Vue 将原生 DOM 操作封装成指令,那个元素想使用该指令,直接在 html 模板中的元素标签中当作属性使用就行,简介方便,减少重复。

但是 Vue 毕竟不能把所有 DOM 操作情况都提前考虑进去封装成对应指令,有些 DOM 操作还得开发者在实际中用到时才知道,因此 Vue 便提供了用户自定义指令的方式,大致分为如下两种:

自定义指令和自定义组件类似,也分为全局和局部,下面以自定义一个打印字符 y 的指令 v-y为例讲解:

全局指令

全局属性就是在 Vue 提供的特定函数中注册:


Vue.directive("y", {
  inserted: function(el) {
    el.addEventListener("click", () => console.log("y"));
  }
});

局部指令

只能用在定义该指令的 template 里

可以是完整版的 template 属性里

main.js


new Vue({
  template:`
    <div v-y>
      <button>点击</button>
    </div>
  `,
  directives:{
    'y':{
      inserted: function(el) {
        el.addEventListener("click", () => console.log("y"));
      }
    }
  }
}).$mount("#app");

或者是非完整版的 .vue 文件的 export default{}里

app.vue


<template>
    <div>
      <button v-y>点击</button>
    </div>
</template>
<script>
    export default {
      directives:{
        'y':{
          inserted: function(el) {
            el.addEventListener("click", () => console.log("y"));
          }
        }
      }
    };
</script>

directiveOptions

指令对象里有5个函数属性


{
    bind: function (el,info,vnode,oldVnode) {}, //元素创建在内存中时执行
    inserted: function (参数同上) {}, //元素插入页面时执行
    update: function (参数同上) {}, 
    componentUpdated: function (参数同上) {}, 
    unbind: function (参数同上) {} //元素消失时执行
}

函数属性的参数中 el 是指调用该指令的元素,info 包含了所有信息,需要时就在 info 中找

2、Mixin 混入

混入的主要目的是为了减少构造选项的重复,可将重复的构造选项的部分抽离出来放到一个单独的 *.js 文件中,然后用 import 导入,再在构造选项中通过 mixins 属性混入。

minxin 是智能混合,会根据添加的混入和当前的选项进行智能混合,而不是单纯的复制。

3、Extends 继承

继承和 minxin 功能差不多,但 extend 更抽象些,二者都是对构造选项的重复进行简化,extend 可以在原有 Vue 的空壳基础上加上自己的定义属性作为固定属性,然后在创建 Vue 对象时使用创建继承了 Vue 的自定义类 MyVue。

Myvue.js


const MyVue = Vue.extend({
    minxins: [log]
});

export default MyVue;

4、provide 和 inject

父代提供共用数据或方法


{
    //...
    provide(){
        return {
            xx: this.changexx,
            yy: this.changeyy
        }
    },
    methods:{
        changexx(){
            //...
        },
        changeyy(){
            //...
        }
    }
}

后代注入东西对数据修改


{
    inject: ["changexx", "changeyy"]
}

和 .sync 修饰符的作用有点像,但比 .sync 要广泛。

以上就是详解Vue进阶构造属性的详细内容,更多关于Vue进阶构造属性的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解Vue进阶构造属性

本文链接: https://lsjlt.com/news/126059.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解Vue进阶构造属性
    目录1、Directive 自定义指令2、Mixin 混入3、Extends 继承4、provide 和 inject1、Directive 自定义指令 在 Vue 框架下的代码中,...
    99+
    2024-04-02
  • Vue进阶构造属性的示例分析
    小编给大家分享一下Vue进阶构造属性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、Directive 自定义指令在 Vue 框架下的代码中,很少用到...
    99+
    2023-06-15
  • Kotlin类与属性及构造函数的使用详解
    目录1.类的属性 filed2.构造函数3.执行顺序4.延迟初始化5.惰性初始化1.类的属性 filed 1)在kotlin中定义属性,必须赋初始值,要不编译器检查不通过。这个和ja...
    99+
    2024-04-02
  • Vue之ref属性详解
    总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容! ...
    99+
    2024-04-02
  • 【程序员必备】VUE 计算属性的进阶指南
    引言 Vue 计算属性是一个基础但功能强大的特性,它使您能够轻松地基于其他响应式数据创建一个新的响应式属性。在本文中,我们将探讨计算属性的进阶用法,包括使用getter和setter函数、处理异步操作以及优化计算属性。 使用 Getter...
    99+
    2024-02-20
    Vue.js 计算属性 响应式编程 JavaScript
  • 详解Vue的监听属性
    目录Vue监听属性什么是监听属性?监听属性和计算属性的区别?监听属性的使用深度监听立即调用总结Vue监听属性 什么是监听属性? 所谓监听就是对内置对象的状态或者属性变化进行监听并且做...
    99+
    2024-04-02
  • Vue之计算属性详解
    1、何为计算属性:大白话讲就是计算出来的结果保存在属性当中,可以想象为缓存。 <!DOCTYPE html> <html lang="en"> <h...
    99+
    2024-04-02
  • Vue中的computed属性详解
    目录插值表达式methodscomputed总结今天来说说vue中的计算属性computed,为了更好的理解计算属性的好处,我们先通过一个案例来慢慢 了解计算属性,有如下案例:定义两...
    99+
    2024-04-02
  • VUE计算属性进阶指南:探索计算属性的更多高级用法
    了解计算属性的局限性 在深入探索计算属性的高级用法之前,有必要先了解它的局限性。计算属性本质上是一个缓存机制,它在第一次计算时创建缓存,之后只要依赖项没有改变,就不会重新计算。这种缓存机制虽然提高了性能,但同时也意味着计算属性无法直接响...
    99+
    2024-02-27
    Vue.js、计算属性、派生数据、监测属性依赖、侦听器函数
  • CSS 动画属性进阶:keyframes 和 animation
    CSS 动画是网页设计中重要的一部分,它可以通过展示连续的图像来营造出流动的效果,增加页面的视觉吸引力。在CSS中,我们可以使用多种动画属性来创建各种效果。本文将重点介绍两个核心的动画属性:keyframes 和 animation,并提供...
    99+
    2023-10-21
    keyframes 关键词:CSS 动画属性
  • Java数据结构中图的进阶详解
    目录有向图有向图API设计有向图的实现拓扑排序拓扑排序图解检测有向图中的环检测有向环的API设计检测有向环实现代码基于深度优先的顶点排序顶点排序API设计顶点排序实现代码:有向图 有...
    99+
    2024-04-02
  • VUE计算属性:从初学者到专家的进阶指南
    初阶篇: 1. 了解计算属性的基本概念 计算属性是Vue.js中一种特殊的属性,它允许您在不使用任何方法的情况下创建新的属性。与普通属性不同,计算属性是通过从组件数据中计算得来的,而不是直接存储在组件数据中。这种特性使得计算属性能够始终...
    99+
    2024-02-27
    Vue.js、计算属性、响应性、组件、数据
  • 解析ConcurrentHashMap:成员属性、内部类、构造方法
    目录1、简介2、JDK1.8 ConcurrentHashMap结构图3、成员属性4、静态属性5、静态代码块6、内部类6.1 Node节点6.2 ForwardingNode节点6....
    99+
    2024-04-02
  • 助你进阶:JavaScript 构造函数模式,高阶技巧大公开!
    JavaScript 构造函数模式是面向对象编程(OOP)的基本概念,它允许您创建对象并定义它们的属性和方法。通过构造函数模式,您可以创建可重用的代码,并使您的代码更易于阅读和维护。 1. 构造函数模式的基本原理 构造函数模式的基本原理...
    99+
    2024-02-23
    JavaScript 构造函数模式 面向对象编程 原型 继承
  • VUE 组件的计算属性详解
    目录前言计算属性总结前言 今天也是元气满满的一天,今天整理一下VUE组件的计算属性!~~开始我们的学习之旅 计算属性 先引用一张图 来看一下计算属性之间的关联: 注意: ...
    99+
    2024-04-02
  • 关于Vue中的计算属性和监听属性详解
    目录一、computed计算属性(1)计算属性的缓存(2)计算属性的setter二、watch监听属性一、computed计算属性 Vue.js模板内的表达式非常便利,但是设计它们的...
    99+
    2023-05-20
    Vue 计算属性 Vue 监听属性
  • Vue计算属性与监视属性实现方法详解
    目录一、计算属性1、插值语法实现2、通过方法实现3、通过计算属性二、监视属性三、深度监视一、计算属性 在开发中,可以有这样的需求,在属性(date)中,有fistName和lastN...
    99+
    2024-04-02
  • SpringBean生命周期之属性赋值阶段详解
    目录前言属性自动装配属性赋值前回调属性的真正赋值总结前言 上节在谈论Bean的实例化过程时,在说明实例化后阶段时只是粗略地看了一下populateBean,并未展开分析。本节接着po...
    99+
    2024-04-02
  • Pandas数据结构中Series属性详解
    目录Series属性Series属性列表Series属性详解Series属性 Series属性列表 属性说明Series.index系列的索引(轴标签)Series.array系列或...
    99+
    2024-04-02
  • Vue的方法和属性案例详解
    vue的方法和属性 1.方法 methods 用法1 methods:{ 方法名:function(){}, } 用法2 methods:{ 方法名(){} } 注意 {{}...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作