vue中data的两种写法

data为对象的写法

data:{
    message: '此时mustache表达式是通过data为对象来获取message的值'
  }

在这里插入图片描述


data为函数的写法

data(){
	return{
    	message: '此时mustache表达式是通过data为函数来获取message的值'
	}
  }

在这里插入图片描述


组件中访问data

组件对象也有一个data属性(也可以有methods等属性),只是组件的data属性必须是一个函数且这个函数返回一个对象,对象内部保存着数据

组件的data属性是一个对象的情况会访问不到data中的数据

在这里插入图片描述

组件的data属性必须是一个函数且返回一个对象

<body>
<div id="app">
	<t1></t1>
</div>

<template id='template1'>
	<div>
		<h2 style='color:blue'>我是模板1</h2>
		<p style="color:red;font-size:50px">{{mm}}</p>
	</div>
</template>
	
<script>
new Vue({
  el: '#app',
  data:{},
  components:{
	  t1:{
  		template:'#template1',
		data(){
			return{
				mm:'逗你玩'
			}
		}
	  }
  }
})
</script>
</body>

在这里插入图片描述


为什么组件的data属性必须是一个函数且返回一个对象

组件可以重复使用,当一个组件使用多次,就会多次访问一个data数据,从而类似共享复用。如果组件的data属性不是一个函数且返回一个对象,在这种一个组件多次使用的情况下就会共享一个数据。
下面的例子就可以说明data属性是一个函数且返回一个对象的好处:

<body>
<div id="app">
	<t1></t1>
	<t1></t1>
	<t1></t1>
	<t1></t1>
</div>

<template id='template1'>
	<div>
		<button @click="count--">-</button>
		计数:{{count}}
		<button @click="count++">+</button>
	</div>
</template>
	
<script>
new Vue({
  el: '#app',
  data:{},
  components:{
	  t1:{
  		template:'#template1',
		data(){
			return{
				count:0
			}
		}
	  }
  }
})
</script>
</body>

  • 21
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Vue 3 的生命周期有两种不同的写法:Options API 和 Composition API。 1. Options API:这是 Vue 2.x 常用的写法,通过在组件选项定义生命周期钩子函数来实现。常见的生命周期钩子函数包括 `beforeCreate`、`created`、`beforeMount`、`mounted`、`beforeUpdate`、`updated`、`beforeUnmount` 和 `unmounted` 等。 示例代码如下: ```javascript export default { beforeCreate() { // 组件实例刚刚被创建,数据观测 (data observer) 和 event/watcher 事件配置之前被调用 }, created() { // 组件实例已经完全创建,数据观测 (data observer) 和 event/watcher 事件配置完成 }, beforeMount() { // 组件挂载之前被调用,相关的 render 函数首次被调用 }, mounted() { // 组件挂载完成后被调用,此时 DOM 已经渲染完毕 }, beforeUpdate() { // 组件更新之前被调用,发生在虚拟 DOM 打补丁之前 }, updated() { // 组件更新完成后被调用,此时 DOM 已经重新渲染 }, beforeUnmount() { // 实例销毁之前调用,在这一步,实例仍然完全可用 }, unmounted() { // 组件销毁后调用,此时实例完全被销毁 } } ``` 2. Composition API:这是 Vue 3 引入的新特性,可以更灵活地组织组件逻辑。使用 Composition API,我们可以使用 `setup` 函数来定义生命周期钩子函数。 示例代码如下: ```javascript import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue' export default { setup() { onBeforeMount(() => { // 组件挂载之前被调用 }) onMounted(() => { // 组件挂载完成后被调用 }) onBeforeUpdate(() => { // 组件更新之前被调用 }) onUpdated(() => { // 组件更新完成后被调用 }) onBeforeUnmount(() => { // 实例销毁之前调用,在这一步,实例仍然完全可用 }) onUnmounted(() => { // 组件销毁后调用,此时实例完全被销毁 }) } } ``` 这是 Vue 3 两种常用的生命周期写法。可以根据实际需求选择合适的写法
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brrby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值