|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
4 n0 N+ F2 x# m8 E; v0 H - // 选项
9 ~7 O( Y; Z, @( b' H+ `/ K - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
" J! L. L/ P! z, A1 n - <h1>site : {{site}}</h1>$ {0 ]8 k% `8 ~3 m/ l3 Q) v
- <h1>url : {{url}}</h1>
7 I5 q8 D: X1 g" f - <h1>{{details()}}</h1>
5 W( I: F8 G& d, q% z- W+ L7 W - </div>
( b$ p i. }9 c( _9 ^' ` - <script type="text/javascript">
$ Q2 i/ ~+ R/ f+ \* \0 ? P - var vm = new Vue({
$ Y( m- ^, M0 E$ R$ y - el: '#vue_det',8 Z6 i3 O8 h! V, I2 r6 ^
- data: {, k; C# r9 L: n+ U
- site: "菜鸟教程",! ^3 @1 H9 F* Q6 B
- url: "www.runoob.com",
( ^' J7 C6 _, U - alexa: "10000"
. S8 b0 J/ {5 @6 s4 I3 o - },
f% |' W9 S/ M8 U5 B* M2 U! y - methods: {
* c, z$ s _: V, o4 H. o - details: function() {
% A4 L" z1 S3 }* K p' [: o3 F2 Y - return this.site + " - 学的不仅是技术,更是梦想!";3 {# c5 ~; c$ U) u: O
- }
( f5 a" a' ]$ |$ g - }+ t$ H# O& B2 u6 v$ @
- })& @5 W; ]% R7 n2 w. O
- </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">2 {3 F( |/ M! \6 f+ d3 ?
- <h1>site : {{site}}</h1>
# B, i; W1 N H1 o6 n; ]$ I ` w - <h1>url : {{url}}</h1>5 y+ C/ P x8 ]3 ~
- <h1>{{details()}}</h1>
5 m6 I' [. p0 m, [, K( c% ? - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
$ h% @ L4 v, B9 @; L - <h1>site : {{site}}</h1>
, B+ }5 ]4 T. O [9 W2 K - <h1>url : {{url}}</h1>
( s4 d6 C" c, j7 u* t, s - <h1>Alexa : {{alexa}}</h1> ]& q( I. r9 p; w8 L
- </div>
) e& A: a% \6 `9 ] - <script type="text/javascript">2 j+ h5 }6 y6 o# b; T1 ~5 _% B
- // 我们的数据对象
2 ~$ q4 _6 J, }7 F& |5 L- ~ - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}4 Z' ]1 v+ @! O( H5 T
- var vm = new Vue({( ?- W% j1 m t. ~7 f. \
- el: '#vue_det',
/ A& Q5 H3 m1 \5 m8 ^7 J - data: data4 K/ `% s X$ k% m. l9 r
- })6 j/ R! ^+ b/ g4 l. t T4 |, X
- // 它们引用相同的对象!
; i4 W1 _/ p* _5 ?9 k - document.write(vm.a === data.a) // true$ y% K3 P4 j! S( W
- document.write("<br>")& w7 M, |6 ?; F4 C7 u& J
- // 设置属性也会影响到原始数据% A) m! P. {2 }1 U5 @' {
- vm.site = "Runoob"
' f. i) W* C. f# ]* d* R - document.write(data.site + "<br>") // Runoob
: J# h8 a5 N$ y. L* q; O -
- V _1 D" [4 b; E - // ……反之亦然
' t1 S! A, k' q/ Q6 ^. X - data.alexa = 1234! B2 t) ]2 s6 e' o% r% L7 ]2 Q; m1 J
- document.write(vm.alexa) // 1234( u1 Q* v/ t/ R6 v- e$ T/ ?
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">1 W- r* B* s! i
- <h1>site : {{site}}</h1>
. w1 v; D, }, ]' | - <h1>url : {{url}}</h1>
. r1 b; Q1 f Z4 }% u6 W - <h1>Alexa : {{alexa}}</h1>
5 O( W( d R' k. N! m - </div>
# h9 B6 d5 x B6 j - <script type="text/javascript">! R' l! X5 _5 ^7 v2 ^, s* o
- // 我们的数据对象
$ U8 [' _# [9 n1 v6 R- w - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" W1 i' t% H- ^ - var vm = new Vue({5 h1 A; w, U+ R+ M/ r
- el: '#vue_det',
Z/ e6 t1 N: S9 ?2 Y; I- S - data: data* F2 H! u- U! f7 p+ @
- })
! v$ q/ \. I- s$ ? - ' }/ Y# D) c( }' l3 v9 {+ v
- document.write(vm.$data === data) // true) j8 c4 t' C( o6 {
- document.write("<br>") // true
9 Q* b- l/ {9 W - document.write(vm.$el === document.getElementById('vue_det')) // true$ R. r7 G5 M0 l! \2 Z1 y9 t& [( v' C+ y
- </script>
复制代码 ) |0 A- p3 U# q( O+ l( N! |3 N+ j
' k7 N: m3 n" r1 \9 e) x- Y |