9.vue实例信息、属性继承、自定义以及内部事件

实例信息

  1. $data:对实例地data对象属性地访问;
  2. $props:对组件实例地props对象属性地访问;
  3. $el:访问实例使用的根 DOM 元素;
  4. $options:访问实例所有属性;
  5. $isServer:当前 Vue 实例是否运行于服务器。;
  6. $attrs:包含了父作用域中不作为 prop 被识别 (且获取) 的 attribute 绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。;
  7. $listeners:包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。;

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>vueTest</title>
	<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
	<div id="app">
	</div>
	<script type="text/javascript">		
		Vue.config.productionTip = false;
		var
			demo = {
				props: ['props'],
				methods: {
					getProps(){
						console.log('getProps');
						console.log(this.$props);
					},
					getAttrs(){
						console.log('getAttrs');
						console.log(this.$attrs);
					},
					listeners(){
						console.log('listeners');
						console.log(this.$listeners);
					}
				},
				template: `	<div>
								<button v-on:click='getProps'>$props</button>
								<button v-on:click='getAttrs'>$attrs</button>
								<button v-on:click='listeners'>$listeners</button>
							</div>
							`,
			},
			app = new Vue({
				el: '#app',
					data(){
						return {
							name: '实例信息 property'
						}
					},
					methods: {
						getData(){
							console.log('getData');
							console.log(this.$data);
						},
						getEl(){
							console.log('getEl');
							console.log(this.$el);
						},
						getOptions(){
							console.log('getOptions');
							console.log(this.$options);
						},
						isServer(){
							console.log('isServer');
							console.log(this.$isServer);
						},

					},
					components: {
						'component-demo': demo,
					},
					template:
					 `<div>
						<button v-on:click='getData'>$data</button>
						<button v-on:click='getEl'>$el</button>
						<button v-on:click='getOptions'>$options</button>
						<button v-on:click='isServer'>$isServer</button>
	
						<component-demo
							v-on:listeners='isServer'
							v-on:test='isServer'
							props = 'props'
							attrs = 'attrs'
						></component-demo>
					</div>`
			})
	</script>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值