首页 > 其他分享 >Vue — vue中带有$的属性和方法

Vue — vue中带有$的属性和方法

时间:2024-03-14 14:22:40浏览次数:15  
标签:Vue const app vue new message data 属性

在 Vue.js 中,以 $ 开头的属性通常是框架内部提供的特殊属性或方法,用于访问 Vue 实例的一些内部属性或执行特定的操作。以下是一些常见的以 $ 开头的属性:

属性:

1.$data:Vue 实例的数据对象,包含实例中定义的数据。

const app = new Vue({
  data: {
    message: 'Hello, Vue!'
  }
});

console.log(app.$data.message); // 输出:Hello, Vue!

2.$props:包含了父组件传递给子组件的属性。

Vue.component('my-component', {
  props: ['message'],
  mounted() {
    console.log(this.$props.message); // 输出:Hello, Vue!
  }
});

3.$el:Vue 实例关联的根 DOM 元素。

const app = new Vue({
  el: '#app'
});

console.log(app.$el); // 输出:#app 元素的 DOM 引用

4.$options:用于当前 Vue 实例的初始化选项。

const app = new Vue({
  data: {
    message: 'Hello, Vue!'
  },
  created() {
    console.log(this.$options.data().message); // 输出:Hello, Vue!
  }
});

5.$refs:包含了组件中所有拥有 ref 特性的 DOM 元素或子组件实例。

const app = new Vue({
  data: {
    message: 'Hello, Vue!'
  },
  created() {
    console.log(this.$options.data().message); // 输出:Hello, Vue!
  }
});

6.$emit():在子组件中触发父组件的事件。

<div id="app">
  <my-component @custom-event="handleCustomEvent"></my-component>
</div>

<script>
Vue.component('my-component', {
  methods: {
    handleClick() {
      this.$emit('custom-event', 'Hello from child component!');
    }
  }
});

const app = new Vue({
  methods: {
    handleCustomEvent(data) {
      console.log(data); // 输出:Hello from child component!
    }
  }
});
</script>

7.$on():监听当前实例上的自定义事件。

const app = new Vue({
  created() {
    this.$on('custom-event', data => {
      console.log(data); // 输出:Hello from child component!
    });
  }
});

8.$nextTick():在下次 DOM 更新循环结束之后执行延迟回调。

const app = new Vue({
  data: {
    message: 'Hello, Vue!'
  },
  methods: {
    updateMessage() {
      this.message = 'Updated message';

      this.$nextTick(() => {
        console.log(this.$el.textContent); // 输出:Updated message
      });
    }
  }
});

9.$watch():用于观察 Vue 实例上的数据变化。

const app = new Vue({
  data: {
    message: 'Hello, Vue!'
  },
  watch: {
    message(newMessage, oldMessage) {
      console.log(`Old message: ${oldMessage}, New message: ${newMessage}`);
    }
  }
});

10.$router:Vue Router 实例,用于在 Vue 应用中进行路由导航。

const router = new VueRouter({
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
});

const app = new Vue({
  router,
  methods: {
    goToAboutPage() {
      this.$router.push('/about'); // 导航到 /about 页面
    }
  }
});

11.$attrs:用于访问父组件传递给子组件但子组件没有显式声明接收的非 prop 特性(attribute)集合。

<div id="app">
  <my-component title="Custom Title"></my-component>
</div>

<script>
Vue.component('my-component', {
  mounted() {
    console.log(this.$attrs.title); // 输出:Custom Title
  }
});

const app = new Vue();
</script>

方法

1.$set(object, key, value):在 Vue 实例或组件实例中设置响应式属性的方法。

const vm = new Vue({
  data: {
    obj: {}
  }
});

vm.$set(vm.obj, 'newKey', 'newValue');

2.$delete(object, key):在 Vue 实例或组件实例中删除属性的方法。

const vm = new Vue({
  data: {
    obj: { key: 'value' }
  }
});

vm.$delete(vm.obj, 'key');

3.$forceUpdate():强制当前 Vue 实例重新渲染。

const vm = new Vue({
  data: {
    message: 'Hello'
  },
  methods: {
    updateMessage() {
      this.message = 'Updated';
      this.$forceUpdate();
    }
  }
});

4.$createElement():用于创建虚拟 DOM 元素的方法,通常在渲染函数中使用。

const MyComponent = {
  render(createElement) {
    return createElement('div', 'Hello, Vue!');
  }
};

5.$destroy():销毁当前 Vue 实例。

const vm = new Vue({
  el: '#app'
});

vm.$destroy();

6.$refs:引用子组件或 DOM 元素的特殊属性。

html
<div id="app">
  <my-component ref="myRef"></my-component>
</div>

<script>
const app = new Vue({
  mounted() {
    console.log(this.$refs.myRef); // 输出:子组件的实例或 DOM 元素的引用
  }
});
</script>

7.$slots:访问插槽内容的属性,用于处理父组件传递的内容。

<my-component>
  <span slot="header">Header</span>
  <span slot="footer">Footer</span>
</my-component>

8.$scopedSlots:访问具名插槽内容的属性,用于处理父组件传递的具名插槽内容。

<my-component>
  <template v-slot:default="slotProps">
    <span>{{ slotProps.text }}</span>
  </template>
</my-component>

 

标签:Vue,const,app,vue,new,message,data,属性
From: https://www.cnblogs.com/qinlinkun/p/18072757

相关文章

  • Java登陆第三十五天——Vite+Vue3目录结构、.vue文件理解(SFC)
    项目结构使用Vite创建Vue3+JS默认项目结构如下:(vmoudle1是项目名)Vue中提出了组件的概念。组件是代码复用的一种方式,用于抽象出一个可复用的UI,方便在不同的场景中进行重复使用。组件根据大小可被分为:(从小到大)1.组件2.布局组件3.页面级别组件.vscode忽略node......
  • vue的axios教程
    ajax技术:不重新加载整个页面的情况下,异步地与服务器进行通信,并更新页面的部分内容Ajax(AsynchronousJavaScriptandXML)是一种使用JavaScript向服务器发送和接收数据的技术。Ajax的工作原理基于以下关键组件:XMLHttpRequest对象:XMLHttpRequest是浏览器提供的API,用......
  • 通过构造函数实现属性赋值(含有具体例子)
    一、什么是构造函数?new关键字实际上是在调用一个方法,这个方法叫构造方法(构造器)调用构造器的时候,如果你的类中没有写构造器,那么系统会默认给你分配一个构造器,只是我们看不到罢了。可以自己显式的将构造器编写出来:构造器的格式:[修饰符]构造器的名字(){}构造器和方法的......
  • springboot3+vue3(十)springboot属性配置方式
    在项目中如端口号等配置信息在yml配置文件中,打包发布后这些信息运维人员无法进行修改的问题时有发生,如:改变项目运行的端口号等。我们除了在项目的yml配置文件中配置外,还有以下三种配置方法:1、命令行参数方式 --键=值    例如:我们想把项目的端口改为9999  --server.p......
  • vue中 lang="ts"与js的区别
    `lang="ts"`与`js`的区别在于指定了脚本语言的类型,其中:-`lang="ts"`指定了TypeScript,一种由微软开发的JavaScript的超集,提供了静态类型检查等功能,使得代码更加健壮和可维护。-`js`则指定了JavaScript,是一种脚本语言,用于在网页上实现动态交互效果,是前端开发中最常用......
  • Vue — 打包优化
    1.默认情况下,打包好的文件需要房子啊服务器的根目录下,如果希望能够双击运行,需要配置pacblicPath为相对路径const{defineConfig}=require('@vue/cli-service')module.exports=defineConfig({publicPath:'./',transpileDependencies:true})2.路由懒加载:当打......
  • springboot3+vue3(九)打包部署(windows)
    1、在pom中添加打包插件坐标(如果创建项目选的是springboot创建会自动生成打包插件)<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artif......
  • Vue — 导航守卫
    Vue的导航守卫是VueRouter提供的一种机制,用于在导航过程中对路由进行控制和管理。通过导航守卫,你可以在路由导航前、导航后、以及路由更新前后等不同阶段执行特定的逻辑操作。全局前置守卫(GlobalBeforeGuards):beforeEach(to,from,next):在路由跳转前执行,可以用来进行......
  • 基于java+springboot+vue实现的物业管理系统(文末源码+Lw+ppt)23-23
    摘  要快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,通过线上物业管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式。他们不仅希望页面简单大方,还希望操作方便,可以快......
  • 基于java+springboot+vue实现的停车场管理系统(文末源码+Lw)23-258
    摘 要如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统停车场管理系统信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个停车场管......