Vue2 第十三节 使用Vue脚手架 (二)

news2024/12/26 23:34:59

1. ref属性

2. props配置项

3.mixin混入

4.plugin插件

一. ref属性

① 作用:用于给节点打标识(给元素或者组件注册引用信息,id的替代者)

② 语法:

 应用在html标签上获取的是真实的DOM元素,应用在组件标签上获取的是组件实例对象

 ③ 使用的时候:this.$refs.xxx 

 输出结果

 ④ ref 和 id 的区别

  • 对于html标签来说,id 和 ref并没有什么区别
  • 但是对于组件来说,id获取到的是整个组件对应的DOM结构,ref获取到的是School组件实例对象

id:

 ref:

二. props配置项【重要】

1. 作用:用于父组件给子组件传递数据

App是父组件,要给自己的子组件Student传数据

传数据:App.vue中

age前面的冒号表示 v-bind 里面是一个JS表达式,传过去之后就是一个数字

2. 收数据:student.vue中添加props配置项,

① 第一种接收方式:只指定名称

接收的数据会被存放在组件实例对象上,在模板中可以直接写

② 第二种接收方式:指定名称和类型 

props: {
    name: String,
    age: Number,
    sex: String
  }

③  接收的同时对数据进行类型限制+默认值+必要性的限制

props: {
    name: {
      type: String,
      required: true
    },
    age: {
      type: Number,
      default: 99  //默认值
    },
    sex: {
      type: String,
      required: true
    }
  }

3.注意:props 是只读的,Vue底层会检测对props的修改,如果进行修改,就会发出警告,

如果业务确实需要修改,复制props的内容到data中一份,然后去修改data中的数据

props的优先级比data高,先执行props中的东西,所以在data中接收this.age是可以的 

三.mixin混入

① 功能:可以把多个组件共用的配置提取成一个混入对象(复用配置)

② 定义混入:mixin.js

export const mix = {
  methods: {
    showName () {
      alert(this.name)
    }
  }
}

export const mix2 = {
  data () {
    return {
      x: 100,
      y: 200
    }
  }
}

③ 引入混和

import { mix, mix2 } from './mixin'
export default {
  name: 'School',  // 最好和文件名保持一致
  data () {
    return {
      name: '尚硅谷',
      address: '北京'
    }
  },
  mixins: [mix, mix2]
}

④  如果数据内部有,就用数据内部的,如果没有就用混合里面的

⑤  但是生命周期函数都会执行,混合先执行,数据内部后执行

⑥ 上面的是局部混合,还有全局混合,所有程序中的vm和vc中都会有混合中的数据, 在main.js中全局引入

import Vue from 'vue'
import App from './App.vue'
import { mix, mix2 } from './components/mixin'
Vue.config.productionTip = false
Vue.mixin(mix)
Vue.mixin(mix2)
new Vue({
    el: '#app',
    render: q => q(App)
})

四.插件

① 插件的功能:是用于增强Vue

② 插件的本质:包含一个install 方法的一个对象,install 的第一个参数是Vue, 第二个以后的参数是插件使用者传递的数据

export default {
  install (Vue, a, b, c) {
    console.log(a, b, c)
    // 全局过滤器
    Vue.filter('mySlice', function (value) {
      return value.slice(0, 4)
    })

    // 全局指令
    Vue.directive('fbind', {
      bind (element, binding) {
        console.log(this) // 此处的this是window
        element.value = binding.value
        console.log('bind')
      },
      inserted (element, binding) {
        element.focus()
        console.log('inserted')
      },
      update (element, binding) {
        element.value = binding.value
        console.log('update')
      }
    })

    // 全局混入
    Vue.mixin({
      data () {
        return {
          x: 100,
          y: 200
        }
      }
    })

    // 给Vue原型上添加一个方法(vm和vc都可以用)
    Vue.prototype.hello = () => { alert('hello') }
  }
}

③ 引入和应用插件

import Vue from 'vue'
import App from './App.vue'
import plugins from './plugins'
Vue.config.productionTip = false
// 应用插件
Vue.use(plugins, 1, 2, 3)
new Vue({
    el: '#app',
    render: q => q(App)
})

④ 插件里面的指令或者方法都是可以使用的

使用 mySlice 过滤器

<template>
  <!-- 组件的结构 -->
  <div>
    <h2>学校名称:{{ name | mySlice }}</h2>
    <h2>学校地址:{{ address }}</h2>
    <button @click="test">点我测试一下hello</button>
  </div>
</template>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/827680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloudAlibaba之Nacos配置中心

第一步&#xff1a;引入jar包 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> 第二步&#xff1a;在resources下创建一个bootstrap.yml文档…

微信可以防止被拉黑,原来这样设置→

微信真是隔三差五上个热搜&#xff0c;这不得被别的 App 羡慕死 这不&#xff0c;前几天#原来微信可以防拉黑#的话题冲上了热搜。 说到拉黑&#xff0c;大伙大部分应该都体验过&#xff0c;在生活中我们和好朋友之间难免有摩擦&#xff0c;往往有些朋友情绪一上来就把你拉黑了。…

20230802-下载jdk1.8、jre

搜索oracle oracle官网 https://www.oracle.com/cn/

举办活动发布会,如何得到媒体支持?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 举办活动发布会并得到媒体报道的支持是一个关键的宣传和推广手段。以下是一些建议&#xff0c;帮助你增加吸引媒体关注和报道的机会&#xff1a; 1. 策划新闻价值&#xff1a;确保你的发…

Python教程(6)——Python变量的基础类型。|整数类型|浮点数类型|字符串类型|布尔类型|

学习编程语言&#xff0c;不得不忽视变量这个概念。Python 中的变量是用于存储数据的名称&#xff0c;你可以将值赋给变量&#xff0c;并在程序的其他地方使用该变量来引用该值。变量在程序中起到存储和操作数据的作用。 如果学过C/C语言的同学&#xff0c;定义了变量后&#…

【测试学习四】掌握测试用例的设计方法有哪些~

目录 需要知道&#xff1a;了解测试用例 &#x1f337;1、测试用例的基本要素&#xff1f; &#x1f337;2、什么是好的测试用例&#xff1f; &#x1f337;3、不学习测试用例的设计方法&#xff0c;能不能对一个物体或软件进行测试&#xff1f; 一、基于黑盒测试用例的设计…

AlphaControls crack

AlphaControls crack AlphaControls-一组通用和一些独特的组件&#xff0c;支持皮肤(AlphaSkins)&#xff0c;并具有一些附加功能。所有皮肤元素都可以有自己的属性&#xff0c;用于高级绘制渐变、逼真的框架、半透明和模糊的阴影。图形功能实时生成所有计算和绘图。添加了用于…

InnoDB存储引擎——MVCC(多版本并发控制)介绍

文章目录 1.MVCC多版本并发控制基本概念2.MVCC实现原理2.1 innodb引擎的表结构中的三个隐藏字段2.2 innodb引擎的undo log日志2.3 innodb引擎的readview2.4 MVCC实现原理小结 1.MVCC多版本并发控制基本概念 快照读、当前读、MVCC的介绍。 快照读&#xff0c;select不加锁&am…

【JAVASE】什么是方法

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 方法 1. 方法概念及使用1.1 什么是方法1…

python——案例8:设定列表:listl=[0,1,2,3,4,5],求列表之和

案例8&#xff1a;设定列表&#xff1a;listl[0,1,2,3,4,5],求列表之和total0 list1[0,1,2,3,4,5] #列表lis1for ele in range(0,len(list1)):totaltotallist1[ele] print("列表中元素之和&#xff1a;",total) #输出结果

C# 图表控件库 ScottPlot

推荐使用ScottPlot原因&#xff1a; 1.图形界面简洁&#xff0c;样式丰富 2.代码较少 3.官方提供多种实例源码&#xff0c;并可以直接通过图形界面查看&#xff0c;便于快速开发 Github源码链接&#xff1a;https://github.com/ScottPlot/ScottPlot 官网WindowFrom Demo实例…

Steam搬砖蓝海项目

这个项目早在很久之前就已经存在&#xff0c;并且一直非常稳定。如果你玩过一些游戏&#xff0c;你一定知道Steam是什么平台。Steam平台是全球最大的综合性数字发行平台之一&#xff0c;玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。 今天我给大家解释一下什么是…

APP测试流程的总结

本规范基于app大小版本测试经验总结。 第一阶段&#xff1a;需求分析&#xff08;技术产品&#xff09; 1. 新需求是否合理 2. 新旧需求时否存在冲突 3. 理出测试重点 4. 估算测试时间 5. 不熟悉的需求点&#xff0c;确认&#xff08;负责人&#xff0c;竞品&#xff09; 6. …

Java之Map接口

文章目录 简述Map中key-value特点 Map接口的常用方法Map的主要实现类&#xff1a;HashMapHashMap概述 Map实现类之二&#xff1a;LinkedHashMapMap实现类之三&#xff1a;TreeMapMap实现类之四&#xff1a;Hashtable&#xff08;古老实现类&#xff09;Map实现类之五&#xff1…

合并两个有序列表——C语言

文章目录 题目 代码 总结 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 …

STM32 DMA学习

DMA简称 DMA&#xff0c;Direct Memory Access&#xff0c;即直接存储器访问。DMA传输方式无需CPU直接控制传输&#xff0c;也没有中断处理方式那样保留现场和恢复现场的过程&#xff0c;通过硬件为RAM与I/O设备开辟一条直接传送数据的通路&#xff0c;能使CPU的效率大为提高。…

第11章 Linux 实操篇-定时任务调度

11.1 crond 任务调度 crontab 进行定时任务的设置 11.1.1 概述 任务调度: 是指系统在某个时间执行的特定的命令或程序。 任务调度分类: 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等 个别用户工作:个别用户可能希望执行某些程序&#xff0c;比如对mysql数…

新手必备!程序员入职新公司一定要准备的7件事

入职新公司的前三个月是最艰难的&#xff0c;你需要重新适应很多东西&#xff0c;新的环境、新的同事、新的业务、新的工作流程等&#xff0c;如果你是一个刚毕业进入职场的小白&#xff0c;想要让自己尽快的去适应&#xff0c;应该做好充分的准备&#xff0c;这会让你更加的从…

MIAOYUN获评“2023年度一云多芯稳定安全运行优秀案例”

2023年7月25日至26日&#xff0c;由中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;、中国通信标准化协会主办的以“云领创新&#xff0c;算启新篇”为主题的“2023可信云大会”在北京成功举办。会上公布了多项前瞻领域的评估结果和2023年度最佳实践案例&#x…

Mac强制停止应用

有时候使用Mac的时候&#xff0c;某个应用卡住了&#xff0c;但是肯定不能因为一个应用卡住了&#xff0c; 就将电脑重启吧&#xff0c;所以只需要单独停止该应用即可&#xff0c;使用快捷键optioncommandesc就会出现强制停止的界面&#xff0c;选择所要停止的应用&#xff0c;…