vue中的$含义及其用法详解($xxx引用的位置)

vue中的$含义及其用法详解

Vue的实例上,我们可以发现一些以$开头的属性或方法,这些属性或方法就是Vue内部提供的一些API。这些具有特殊含义的$开头的属性和方法,叫做Vue的内置属性或内置方法。接下来,将详细讲解$开头的属性或方法及其用法详解。

$data

$data指向组件实例的数据对象。通过访问$data属性,可以读取及修改组件的数据。例如:

<template>
  <div>
    <p>{{ message }}</p>
    <button @click="changeMessage">修改信息</button>
  </div>
</template>
<script>
export default {
  data () {
    return {
      message: 'Hello, Vue!'
    }
  },
  methods: {
    changeMessage () {
      this.$data.message = 'Hello, new Vue!'
    }
  }
}
</script>

$props

$props指向组件实例的 props 对象。通过访问$props属性,可以读取组件传递的 props 数据。例如:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>
<script>
export default {
  props: {
    message: {
      type: String,
      default: ''
    }
  },
  created () {
    console.log(this.$props.message)
  }
}
</script>

$el

$el指向组件使用的根DOM元素。例如:

<template>
  <div>
    <p>Hello, Vue!</p>
  </div>
</template>
<script>
export default {
  created () {
    console.log(this.$el)
  }
}
</script>

$watch

$watch可以监听数据的变化并执行回调函数。例如:

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="addCount">添加计数器</button>
  </div>
</template>
<script>
export default {
  data () {
    return {
      count: 0
    }
  },
  watch: {
    count (newValue, oldValue) {
      console.log(`新计数:${newValue},旧计数:${oldValue}`)
    }
  },
  methods: {
    addCount () {
      this.$data.count++
    }
  }
}
</script>

$refs

$refs可以访问标识了ref属性的DOM元素或组件实例。例如:

<template>
  <div>
    <input ref="input" type="text" />
    <button @click="focusInput">聚焦输入框</button>
  </div>
</template>
<script>
export default {
  methods: {
    focusInput () {
      this.$refs.input.focus()
    }
  }
}
</script>

$emit

$emit可以触发当前实例上的事件,同时可以向父级组件传递参数。例如:

<!-- 父组件 -->
<template>
  <div>
    <child-component @change-message="changeParentMessage"></child-component>
  </div>
</template>
<script>
export default {
  data () {
    return {
      parentMessage: 'Hello, Parent!'
    }
  },
  methods: {
    changeParentMessage (message) {
      this.parentMessage = message
    }
  }
}
</script>

<!-- 子组件 -->
<template>
  <div>
    <button @click="changeChildMessage">修改信息</button>
  </div>
</template>
<script>
export default {
  methods: {
    changeChildMessage () {
      this.$emit('change-message', 'Hello, Parent! I am the Child.')
    }
  }
}
</script>

总结

$开头的属性或方法,是Vue内部提供的API,它们能够方便我们处理组件的数据、事件和DOM元素。同时,我们也可以根据需要自定义一些以 $ 开头的属性或方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue中的$含义及其用法详解($xxx引用的位置) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue+ElementUI项目使用webpack输出MPA的方法

    Vue和ElementUI是目前非常流行的前端框架,webpack是常用的前端构建工具,能够输出MPA(多页应用)有助于提高前端页面的加载速度和SEO效果。下面是使用webpack输出MPA的步骤: 一、安装Webpack和一些必要的插件 npm install webpack webpack-cli html-webpack-plugin extract-…

    Vue 2023年5月27日
    00
  • vue3父子组件传值中props使用细节浅析

    下面开始详细讲解“vue3父子组件传值中props使用细节浅析”的完整攻略。 1. 父组件向子组件传值 1.1 父组件使用props向子组件传值 在Vue3中,使用props向子组件传值与Vue2相同。在父组件中定义数据,然后在子组件中通过props接收即可。 // 父组件 <template> <child :msg="mess…

    Vue 2023年5月28日
    00
  • 基于Vue实现后台系统权限控制的示例代码

    基于Vue实现后台系统权限控制的示例代码,可分为以下几个步骤: 实现路由拦截 在Vue项目中,可以通过element-ui的router插件实现路由拦截。在路由配置文件中,通过设置meta字段的requireAuth属性来实现对需要授权的页面进行拦截。示例代码如下: import Vue from ‘vue’; import VueRouter from ‘…

    Vue 2023年5月27日
    00
  • vue.js的状态管理vuex中store的使用详解

    Vue.js的状态管理:Vuex中store的使用详解 在大型Vue.js应用程序中,管理组件之间的状态可能会变得异常困难。为了解决这个问题,Vue.js提供了一个专门的状态管理库——Vuex。 在Vuex中,store是状态集合,包含了你的应用程序中所有组件的状态。store使用一个单一的数据源来管理组件之间的通讯,其中的数据可以在整个应用程序中被访问和修…

    Vue 2023年5月27日
    00
  • 详细聊聊Vue中的MVVM模式原理

    详细聊聊Vue中的MVVM模式原理 MVVM模式概述 MVVM模式是一种软件架构模式,它通过将应用程序分为三个部分来实现软件开发的分层和解耦,包括视图(View)、视图模型(ViewModel)和模型(Model)。其中,视图模型是视图和模型之间的中介层,用于将视图与模型之间的交互隔离开来,从而简化了视图和模型之间的耦合性。 在Vue中,MVVM模式的实现主…

    Vue 2023年5月27日
    00
  • vue3中defineComponent 的作用详解

    下面就是对“vue3中defineComponent 的作用详解”的完整攻略: 什么是 defineComponent defineComponent 是 Vue 3 中的一个工厂函数,用来创建一个组件。我们可以将其看作是一个替代 Vue 2.x 中的 Vue.extend 和单文件组件中的 export default。 defineComponent 可…

    Vue 2023年5月27日
    00
  • 关于Vue源码vm.$watch()内部原理详解

    关于Vue源码vm.$watch()内部原理详解 1. 简介 vm.$watch() 是 Vue.js 内置的一个 API,用于监控 Vue 实例上的数据变化,并作出相应的响应式行为。在使用 Vue 进行开发时,经常会使用 $watch() 进行数据监听操作。 2. 原理 当我们使用 vm.$watch() 时,会创建一个监听器对象(Dep),用于监听指定属…

    Vue 2023年5月28日
    00
  • 关于Vue中axios的封装实例详解

    下面我将为你详细讲解关于Vue中axios的封装实例详解。 1. axios是什么? axios是一个基于Promise的HTTP客户端,用于浏览器和node.js的请求发送。它可以用于简单地进行HTTP请求,也可以进行拦截请求和响应,转换请求和响应数据,取消请求等操作。 2. axios的优点 基于Promise,易于使用 支持拦截请求和响应 支持转换请求…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部