Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
$ p: L& p5 J/ K9 @ - // 选项
: V' S* b3 `, ^* h m9 p7 k - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
: H6 s8 ^6 `! G- a- [" Y: j - <h1>site : {{site}}</h1>
) j J4 K r' |9 k9 u8 ` - <h1>url : {{url}}</h1>
0 Z2 F8 B* y, _# I8 N6 z - <h1>{{details()}}</h1>% Y" b1 M& `# Y# k! W1 {! C
- </div>
; ?( C; }% e5 n1 r - <script type="text/javascript">: K4 o6 u7 C$ F
- var vm = new Vue({
$ i; [& ]: q8 P - el: '#vue_det',
% S3 M ^/ ^9 t/ e$ M1 \3 C- f - data: {
1 J) m' Q# S+ l( \. T8 g- t B - site: "菜鸟教程",: J6 K) `9 R2 Z
- url: "www.runoob.com",
, D" B/ T, g: O2 w# b2 | - alexa: "10000"
1 f1 S( Q7 H; g J9 n! Z - },
; F4 `( X+ y* u% Y+ y1 t - methods: {
+ Q! P- A2 Y, F6 \ - details: function() {
- D6 h4 h& W3 p& M% G5 C - return this.site + " - 学的不仅是技术,更是梦想!";
0 q. B7 ]& ? e7 q W - }
5 n+ b6 m1 D2 O5 H9 j - }
* h- I8 f4 V* W - })
$ s t4 l2 o# M* b7 c - </script>
复制代码可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中: - <div id = "vue_det"></div>
复制代码这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。 接下来我们看看如何定义数据对象。 data 用于定义属性,实例中有三个属性分别为:site、url、alexa。 methods 用于定义的函数,可以通过 return 来返回函数值。 {{ }} 用于输出对象属性和函数返回值。 - <div id="vue_det">
/ z% G8 Z# P1 v7 d' B! C - <h1>site : {{site}}</h1>
0 d* E1 k# M! ]' H8 y8 l - <h1>url : {{url}}</h1>
% J( y s3 i/ n- l" R- u# [# Q - <h1>{{details()}}</h1>1 k5 ]+ O/ `% S
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det"># s+ U- [/ L0 A, T; g3 N
- <h1>site : {{site}}</h1>" u& y2 ^5 P- i( f* v5 w
- <h1>url : {{url}}</h1>! n" g- G& i. P' @
- <h1>Alexa : {{alexa}}</h1>
$ O* X/ E9 h, C' H S* u7 W - </div>
4 s. |: m0 D4 n3 K D - <script type="text/javascript">1 p. M1 V/ y( @: P6 Y
- // 我们的数据对象7 @0 j, Q( L0 J9 R
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}$ ?( S- t5 Q! S- p
- var vm = new Vue({
( L! `9 n% Q# z - el: '#vue_det',
- e2 Y( T8 S7 t' }' e" }# V+ a2 U - data: data
& V; i, q9 p" |4 D1 _% j - })
+ w6 r( Q+ e5 ` - // 它们引用相同的对象!
$ w% ^2 U, X$ E - document.write(vm.a === data.a) // true" o \5 A1 N Z+ \
- document.write("<br>")& M) @' n8 |8 i0 t2 k& f
- // 设置属性也会影响到原始数据
5 g* R' z* U% T2 z5 \( c9 p6 Q# @) {2 | - vm.site = "Runoob"! X1 v& g: l! @$ z2 f/ Z
- document.write(data.site + "<br>") // Runoob
) ]$ s/ ]" k1 z - 1 Q9 D( M5 Z* ]( u+ V
- // ……反之亦然2 E. u! A; U" ]$ I2 J, D( i
- data.alexa = 1234
% o( v5 e$ r" q- v8 Q5 ]8 J - document.write(vm.alexa) // 1234
, D) `; y$ Y! A- s4 J( x - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">8 R3 m0 I5 N- }" m* V- b+ F5 n7 ]
- <h1>site : {{site}}</h1>' A# n: A. [. a2 N8 W' e! i
- <h1>url : {{url}}</h1>
# Y/ X7 S% e( I+ b2 d - <h1>Alexa : {{alexa}}</h1>
( P5 w9 K; h& v; X- D - </div>$ L3 x* v9 s5 q) i* f
- <script type="text/javascript">
+ F( h Q* {* k% _& e - // 我们的数据对象
, O2 A! d2 g7 t; \4 [, b - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 o. j1 V0 u m/ O/ _/ Q; q, ]
- var vm = new Vue({
' x6 R" z2 d, w4 _0 a - el: '#vue_det',) ]) ^* q2 }: y( A9 w
- data: data# z; t2 ` d" n( l' p3 ? O
- })
8 e' f/ @: N- i& @ - + ^+ n$ Q. F, A* S3 n3 N3 A: K# z
- document.write(vm.$data === data) // true4 n* s& f- X1 ?. W; y3 w. Z/ \
- document.write("<br>") // true& R2 D& w# {/ p% l" T; D
- document.write(vm.$el === document.getElementById('vue_det')) // true
- ^! h6 I* R$ M6 e8 { - </script>
复制代码 8 p8 S8 I; j+ L& b; `* y+ ^1 n3 e
; l9 t/ m$ C) v) Z& i9 _) J b |