一. vue实例中的变量只能在vue托管的代码中使用,不能在组件中使用。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<h3>{{message}}</h3>
<my-cmp></my-cmp>
</div>
</body>
<template id="cpn">
<div>
<h2>我是标题</h2>
<p>我是内容不不不</p>
<h3>{{message}}</h3>
</div>
</template>
<script type="application/javascript" src="js/vue.js"></script>
<script>
Vue.component("my-cmp", {
template: '#cpn'
});
const app = new Vue({
el: "#app",
components: {
"my-cmp": {
template: '#cpn'
}
},
data: {
message: "你好"
}
})
</script>
</html>
二. 组件中定义变量
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<h3>{{message01}}</h3>
<my-cmp></my-cmp>
</div>
</body>
<template id="cpn">
<div>
<h2>我是标题</h2>
<p>我是内容不不不</p>
<h3>{{message02}}</h3>
</div>
</template>
<script type="application/javascript" src="js/vue.js"></script>
<script>
Vue.component("my-cmp", {
template: '#cpn',
data() {
return {
message02: "vue组件中的变量"
}
}
});
const app = new Vue({
el: "#app",
data: {
message01: "vue实例中的变量"
}
})
</script>
</html>
组件中定义变量为什么是个方法不是对象呢?
组件在任何模块中都可以被引用,在使用的过程中,如果组件定义的变量是个对象,那么一个模块修改了该对象,其他模块也跟着修改了。如果使用函数,每次返回的是一个新的实例,每个模块引用的过程中都是针对本身的实例做修改,不会影响到其他模块的实例。