<!DOCTYPE html
>
<
html
lang=
"en"
>
<
head
>
<
meta
charset=
"UTF-8"
>
<
script
type=
"text/javascript"
src=
"../assets/js/vue.js"
>
<
/
script
>
<
title
>vue.extend-扩展实例构造器
</
title
>
</
head
>
<
body
>
<
h1
>vue.extend-扩展实例构造器
</
h1
>
<
hr
>
<
author
></
author
>
<
script
type=
"text/javascript"
>
var
authorExtend =
Vue.
extend({
template:
"<p><a :href='authorUrl'>{{authorName}}</a></p>",
data
:
function(){
return{
authorName:
'JSPang',
authorUrl:
'http://www.jspang.com'
}
}
});
new
authorExtend().
$mount(
'author');
<
/
script
>
</
body
>
</
html
>
看一个简单的代码:
//在构造器外部声明数据
var outData={
count:1,
goodName:'car'
};
var app=new Vue({
el:'#app',
//引用外部数据
data:outData
})
var outData={
count:1,
goodName:'car'
};
var app=new Vue({
el:'#app',
//引用外部数据
data:outData
})
在外部改变数据的三种方法:
1、用Vue.set改变
function add(){
Vue.set(outData,'count',4);
}
Vue.set(outData,'count',4);
}
2、用Vue对象的方法添加
1
|
app
.
count
++
;
|
3、直接操作外部数据
1
|
outData
.
count
++
;
|
为什么要有Vue.set的存在?
由于Javascript的限制,Vue不能自动检测以下变动的数组。
*当你利用索引直接设置一个项时,vue不会为我们自动更新。
*当你修改数组的长度时,vue不会为我们自动更新。