vue-为什么子组件中的data选项必须是函数?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../vue.js"></script>
</head>
<body>
<!-- 为什么在Vue.component({})中使用data必须是函数?
在JS中,产生一个对象是通过构造函数来产生的
并且通过构造函数产生的对象都是新的对象
在实例化组件中,data每次调用组件都是产生一个新的组件
Vue.component('vue-div',{
template:'#vue-div',
data(){
return{ //这里每次调用组件都会产生一个新的组件
message:'西门吹雪'
}
}
})
-->
<div id="app">
<!--添加多个,每个都是独立的,不受其它影响-->
<!--验证counter没有被共享-->
<!--所以data()必须以一个函数的形式返回出来-->
<my-btn></my-btn>
<my-btn></my-btn>
<my-btn></my-btn>
<my-btn></my-btn>
</div>
<!-- .注册一个组件-->
<template id="my_btn">
<button @click="counter += 1">点击的次数{{counter}}</button>
</template> </body>
<script>
//如果data是一个对象,那么所有的将会被共享,
// 无论产生多少个组件,都是对应一样的值
//这就是data必须是函数的原因
// let data = {
// counter:0
// };
// data(){
// return data;
// } //2.实例化组件
Vue.component('my-btn',{
template:'#my_btn',
data(){
return{
counter: //通过组件构造器产生出来的组件都是单独的,里面的这个counter不能共享,因为都是通过data函数来一个一个产生的,
}
}
}) var vm = new Vue({
el:'#app',
data:{}
})
</script>
</html>
vue-为什么子组件中的data选项必须是函数?的更多相关文章
- Vue系列之 => 组件中的data和methods
使用data <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- vue 父组件使用子组件中的data或methods
1.调用子组件的时候 定义一个ref 2.在父组件里面通过 this.$refs.verify.属性 this.$refs.verify.方法
- Vue父组件向子组件传值以及data和props的区别
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xukongjing1/article/ ...
- VUe.js 父组件向子组件中传值及方法
父组件向子组件中传值 1. Vue实例可以看做是大的组件,那么在其内部定义的私有组件与这个实例之间就出现了父子组件的对应关系. 2. 父子组件在默认的情况下,子组件是无妨访问到父组件中的数据的,所以 ...
- 第六章 组件 63 组件传值-父组件向子组件传值和data与props的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Vue之vue中的data为什么是一个函数+vue中路径别名alias设置
问题描述 为什么在vue组件中,我们的data属性必须是一个函数,new Vue()中的data除外,因为new Vue中只有一个data属性. 原因 因为我们能抽离出来的组件,肯定是具有复用性的,它 ...
- 039——VUE中组件之子组件中data使用实例与text-xtemplate的使用方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue.js 1中父组件跳到子组件中并传参让子组件显示不同的内容
父组件中的点击跳转: <ul class="insurance-entry clearfloat"> <li v-link="{name:'produc ...
- vue 中 echart 在子组件中只显示一次的问题
问题描述 一次项目开发过程中,需要做一些图表,用的是百度开源的 echarts. vue推荐组件化开发,所以就把每个图表封装成子组件,然后在需要用到该图表的父组件中直接使用. 实际开发中,数据肯定都是 ...
随机推荐
- JAVA二分插入排序
- python基础和编程库
Python编程从入门到实践-------基础入门 1.Python中的变量 2.Python首字母大写使用title()方法,全部大写upper()方法,全部小写lower()方法 3.Python ...
- Vulhub-漏洞环境的搭建
安装Docker #安装pip curl -s https://bootstrap.pypa.io/get-pip.py | python3 #安装最新版docker curl -s https:// ...
- PHP FILTER_SANITIZE_URL 过滤器
定义和用法 FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符. 该过滤器允许所有的字母.数字以及 $-_.+!*'(),{}|\^~[]`">< ...
- table标签详解
1.table标签中没有 tbody标签,浏览器会自动加上去的 2.一般表格的布局可以不使用 thead.tfoot 以及 tbody 元素.这样浏览器解析时会自动给一个 tbody标签的. 完整的 ...
- Python内置模块-time && datatime
Python提供两种时间表示方式,一种是时间戳,从1970年1月1日 0时开始.一种是struct_time数组格式,共有9个元素. import time print(time.time()) #返 ...
- 使用Objective-C的+(void)initialize初始化static变量
在<Objective C类方法load和initialize的区别>一文中,我介绍了Objective-C对待+(void)initialize和+(void)load两个方法在编译和执 ...
- 二:unittest框架配合selenium之xpath定位
刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的 ...
- (2)centos7 图形界面
1.登录 2.先安装MATE可视化桌面 yum groups install "MATE Desktop" 选择y 3.安装X Window System:图形接口 yum gro ...
- java发带图片正文和附件的邮件mail
package com.mail; import java.io.UnsupportedEncodingException; import java.util.Date; import java.ut ...