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的ref、props属性和mixin 插件局部样式 -> 正文阅读

[JavaScript知识库]前端之vue的ref、props属性和mixin 插件局部样式

ref

在这里插入图片描述
在这里插入图片描述

ref作用

在不用原生js的情况下, 操作DOM.
原生:
document.getElementById
document.querySelector

ref 相当于原生js的 id 在元素位置打个标识, 然后它的引用信息会出现在$refs

使用

元素标签内    ref="属性值"
使用时        this.$refs.属性值
(子)组件标签内    ref="属性值"
使用时        this.$refs.属性值

官网:
**ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。**如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例

ref实例

<template>
  <div>
    <img src="./assets/logo.png" alt="" />
    <!-- 3.使用 -->
    <School class="demo"></School>
    <Student name="李四" :age="18"></Student>
    <hr />
    <Student name="李三" ref="vcp" />
    <h3 ref="h333">我是h3元素</h3>
    <button @click="control">control</button>
  </div>
</template>

<script>
// 1.引入
import School from "./components/School.vue";
import Student from "./components/Student.vue";

export default {
  name: "App",
  // 2.注册
  components: {
    School,
    Student,
  },
  methods: {
    control() {
      console.log(this.$refs.vcp);
      console.log(this.$refs.h333);
    },
  },
};
</script>

<style>
.demo {
  background: aqua;
}
</style>

props

加载顺序是先props再data.

在这里插入图片描述

三种方式

v-bind=''表达式"
用于动态绑定, 引号内为表达式

数组 – 简单声明接收

export default{
  props: ["name", "age"],
//  props: ["key1", "key2"],
}

对象 – 接收并指定属性

export default {
  props: {
    name: String,
    age: Number,
  },
};

对象:{对象} – 接收+指定属性+默认/必要性

props实例

<template>
  <div>
    <h2>学生姓名: {{ myName }}</h2>
    <h2>学生年龄: {{ myAge }}</h2>
    <button @click="addAge">年龄+1</button>
  </div>
</template>

<script>
export default {
  name: "StudentName",

  props: {
    name: {
      type: String, //指定类型
      required: true, //必须传值
    },
    age: {
      type: Number,
      default: 99, //可以不传值
    },
  },
  data() {
    return {
      myName: this.name,
      myAge: this.age,
    };
  },
  methods: {
    addAge() {
      //修改数据用data内的属性
      this.myAge++;
    },
  },
};
</script>

props使用模板

  props: {
    name: {
      type: String, //指定类型
      required: true
    },
    age: {
      type: ,
      default: 
    },
  },

在这里插入图片描述

  props: {
    name: {
      type: String, //指定类型
      required: true, //必须传值
    },
    age: {
      type: Number,
      default: 99,//可以不传值
    },
  },

注意

pops是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,
若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。

export 暴露、导出

1. 默认暴露

一个js文件中只能有一个默认暴露,默认暴露的可以是一个常量,函数,对象等。

export default xxx

// 直接引入
import name from '路径'

2. 分别暴露

export let a =2;
export function fun(){
...
}
//解构赋值引入方式
import { mixin as anotherName, ... } from '路径'

3. 统一暴露

let a =2;
function fun(){
...
}
export { a , fun }

解构赋值引入方式:

import {aa1, aa2} from 'b.js'

mixin – 混入

在这里插入图片描述

两个组件共享一个配置
在这里插入图片描述

在这里插入图片描述
将组件重复运用的函数并入一个js文件然后混入组件内
↓↓↓
在这里插入图片描述

  • mixins 选项接收一个混入对象的数组。
  • 混入文件可以有组件的任意内容, 如果组件内没有就加进去, 如果组件内有就不改变组件内的东西.
  • 生命周期是个例外, 但凡有的大家都执行

以上是局部混入
以下是全局混入
在这里插入图片描述

插件(外挂不合法) – 合法增强vue

插件是一个js对象, 内部的属性方法都是加到Vue上的vm和vc都是可以用的.
官网链接: 插件的定义和使用
在这里插入图片描述
在这里插入图片描述

插件(建议用名 plugins.js )本质是就是一个对象(必须含有 install)
位置:
1.在src内写插件(对象内的install函数的参数是Vue – 创建vm的Vue, install函数内写在这里插入图片描述
并且vm 和 vc 都能用
)
2.在main.js内引入插件, 并且使用 Vue.use(插件对象或函数)
在这里插入图片描述
3.开启游戏 – 创建vm

style scoped (样式局部生效)

  1. 所有<style></style>内的样式最后都会汇总到一起, 这会导致类名冲突.
  2. 但是<style scoped>内的样式是局部作用域的, 只在自己组件内部生效
  3. 注意: App.vue 的<style>内样式 其他组件都能用,但是<style scoped>内的样式其他组件用不了.
  4. <style lang=“”> lang用来指定样式语言

用过的插件

id

  1. uniqueid
    库:

  2. nanoid 唯一id
    库: nanoid

npm i nanoid
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:06:01  更:2022-05-07 11:06:42 
 
开发: 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年11日历 -2024/11/23 22:12:40-

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