vue的脚本中一般使用new Vue()
的形式操作渲染,而我们通常会将该对象赋值给一个变量做后续的操作
比如在上一个知识点中我们创建了第一个vue的demo,同时用使用app变量去接收了它,而本篇知识点中我们稍作修改
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<!-- <script src="https://unpkg.com/vue@next"></script> -->
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
{{message}} {{b}}
</div>
<script type="text/javascript">
var data = {message:'Hello Vue!',b:'111'}
var app = new Vue({
el:'#app',
data:data
});
</script>
</body>
</html>
其实Vue对象的data参数存在的意义是对元素内容初始化的同时,保证对数据后续的响应追踪
我们来体验一下什么叫响应追踪,可以看一下效果,现在的效果如下
但如果我们后面修改了某一变量的数据,则Vue对象会追踪到变化,并同步该值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<!-- <script src="https://unpkg.com/vue@next"></script> -->
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
{{message}} {{b}}
</div>
<script type="text/javascript">
var data = {message:'Hello Vue!',b:'111'}
var app = new Vue({
el:'#app',
data:data
});
app.$data.b="ddd";
</script>
</body>
</html>
一般情况下我们很乐意让vue去追踪数据的响应,但是不需要的时候我们只需要使用Vue提供的方法声明就可以
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<!-- <script src="https://unpkg.com/vue@next"></script> -->
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
{{message}} {{b}}
</div>
<script type="text/javascript">
var data = {message:'Hello Vue!',b:'111'}
//声明data数据集中的数据不需要响应变化
Object.freeze(data)
var app = new Vue({
el:'#app',
data:data
});
app.$data.b="ddd"
</script>
</body>
</html>
同时这里说一个数据在使用时的重点,要想Vue对象可以检测到响应,在你创建对象时data参数中必须拥有元素中的变量,比如在创建Vue对象时未全部声明变量的值,则未声明的变量不会存在数据响应一说,而且会报错
解释一下脚本中app内容调用时的$
符号,vue对象的使用有着一种标准的写法,Vue的所有内容为了和用户定义的内容区分,所以如果调用的是vue自带的内容则在开始的地方使用$
开头
Vue的还提供了很多实用的方法,这里给大家介绍一个我们开发中常用的watch方法,它可以监控数据响应前后的变化,便于在开发中对值做效果检查
其他方法大家可以在vue官网的API中看到