Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
& G% }9 A! p$ {2 m3 _ - // 选项
9 F& h3 {7 f" i. |3 W) ^/ _+ A - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">. Z2 T+ C# v7 S' P5 [
- <h1>site : {{site}}</h1>
+ F& s& J1 w% J- X - <h1>url : {{url}}</h1>
9 {* v* l$ G5 Q" d - <h1>{{details()}}</h1>* @5 o N! X& |' L% `
- </div>0 N3 _9 x# p. j6 \' ]# Z" G% o
- <script type="text/javascript">* v9 a: }4 u% w
- var vm = new Vue({7 c, \* X+ V( Z0 {$ V
- el: '#vue_det',, r1 v9 |# h# Q1 g
- data: {
+ r; [: h5 b4 _4 A* o - site: "菜鸟教程",
7 M! v) e6 A4 R" C5 \ - url: "www.runoob.com",8 m0 D/ D+ n! m0 o$ Y' b
- alexa: "10000"
) K0 |; F- i( e. A* a - },
, @6 R. {6 D! z7 d/ E- K - methods: {" y% [/ k$ q7 S* b3 { w* O, l
- details: function() {
1 T4 T' C: m8 s _; B& k% i - return this.site + " - 学的不仅是技术,更是梦想!";
3 Q1 t# v, P6 ]$ o/ q% `) S - }4 T2 E% k9 a6 c+ D
- }
, E- I8 U! A( f* ^7 C+ d) o* w - })5 D% w9 t6 K( G) H4 m' B& C" ]4 ?
- </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">- i- B- @% `% i/ U
- <h1>site : {{site}}</h1>2 Y4 O( s6 _- y
- <h1>url : {{url}}</h1>
* s1 d* T1 U) b* o2 I - <h1>{{details()}}</h1>
: |) b1 }+ N: h8 ]" |3 r% e1 O - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">( K* Y# {* r. B8 m2 w, T
- <h1>site : {{site}}</h1>/ [/ s: _8 n, t8 _2 C
- <h1>url : {{url}}</h1>
6 ^2 P. p6 J+ L! ?) o1 r - <h1>Alexa : {{alexa}}</h1>
7 Y, l' i9 O" B+ ?7 q( b" m - </div>
3 v; ~; m) o: k4 u; E" h3 a - <script type="text/javascript">5 M: _4 s& d% Q- I
- // 我们的数据对象7 r. |0 w* _1 q4 A5 v4 e
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
7 H* z& w4 W6 I( j. g$ v8 h - var vm = new Vue({3 U* K9 `2 h$ N6 T7 p6 u8 g
- el: '#vue_det',
; ~* C) H, s9 B; M$ u: G3 u+ x: I - data: data$ H, [8 l5 `0 w. E7 o& q6 R
- })
" U/ q( n# \: Z/ q( e- r1 c - // 它们引用相同的对象!! u! N/ W3 Q* E R1 m
- document.write(vm.a === data.a) // true% {4 ~$ v* e$ e+ |" l
- document.write("<br>")
( I3 b2 s7 ^: E( R E - // 设置属性也会影响到原始数据' K7 X8 t" i, R4 g
- vm.site = "Runoob"
6 i* t& i# P3 f - document.write(data.site + "<br>") // Runoob
- p7 L; p! E+ v: x - ( L, _3 p5 R' D/ }
- // ……反之亦然
$ b P* N$ ~" t) j# D0 W1 b - data.alexa = 1234
2 W1 ~" }1 w. k3 D0 | q2 r. z - document.write(vm.alexa) // 1234
/ n1 w4 ^) T% [5 K - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">/ k% a: P) |( c! Q# l# v8 A+ K. s& p
- <h1>site : {{site}}</h1> _8 J5 E x) ~7 H1 {
- <h1>url : {{url}}</h1>* V/ F. o7 O1 S1 A: n Y6 V1 a) P* r1 }4 _
- <h1>Alexa : {{alexa}}</h1>
& h) q9 a- T! v% X - </div>
9 W, V, q; X: X" a$ A8 a - <script type="text/javascript">
; }$ D9 u: [: F) b! j% N7 ~* K - // 我们的数据对象
7 O% G$ l1 G( b/ ^ ? f - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
# y" x5 X. Q, W) u - var vm = new Vue({
/ \% v; n% f- ]& \4 O2 q+ f8 R9 A3 e - el: '#vue_det',
7 P9 d% B( F5 k& @/ ] - data: data
- r( M J% V# r% e5 w# v - })
+ t" _* [+ s/ S -
' Z m9 G/ V1 ] - document.write(vm.$data === data) // true9 O+ j9 k" m; a
- document.write("<br>") // true
, a$ E" s. {: c9 n* J' | - document.write(vm.$el === document.getElementById('vue_det')) // true
8 y5 B6 x; A% R- P2 u - </script>
复制代码 0 u5 j0 N; ^! @9 @$ t
1 T# n6 r0 H4 l/ Q# o
|