|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
7 j* x; k) k% B& j - // 选项' c5 E- m9 H/ h
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det"># ^2 f) @* @4 P: g8 s
- <h1>site : {{site}}</h1>
0 _" F# R; F9 {7 M# e; }& ? - <h1>url : {{url}}</h1>* [7 Z) x2 Q4 c. c+ h4 W* }2 _
- <h1>{{details()}}</h1>4 F$ i1 q7 m. v! h) T& g
- </div>( l3 M6 Z7 \2 ^/ Z" C
- <script type="text/javascript">9 H% s, u9 c! B; B
- var vm = new Vue({8 u$ F) z; c+ @: ^! [+ h
- el: '#vue_det',
, F) C# m0 C' v - data: {2 p; |5 @& v R8 p( E
- site: "菜鸟教程",* }+ s) y( o8 o
- url: "www.runoob.com",
7 v0 f, W m- d8 d! O) M5 P - alexa: "10000"
1 V/ W2 c8 n5 |: _& I+ t/ e - },
8 T, L: _' y I - methods: {
2 z% \# H( E; ]" c" F4 m, J, v - details: function() {
' T2 S C# Q1 q1 h - return this.site + " - 学的不仅是技术,更是梦想!";7 q8 G' r2 d4 i0 f; b
- }8 G1 D* F/ f/ H* S
- }- q' Z [7 k# O! K
- })- Q5 c6 i4 M+ M
- </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">
6 D0 K8 }8 B; g! X - <h1>site : {{site}}</h1>$ A! _9 E! U+ I1 T' W2 }% w! j0 W
- <h1>url : {{url}}</h1>2 O, g; G. A6 u$ l
- <h1>{{details()}}</h1>0 C) X9 Z! c: G) X- e# D' [
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">3 R( N- O' C3 u5 ^9 S+ Z8 y' ?' Y0 l
- <h1>site : {{site}}</h1>
, x' R) f1 z6 y3 v - <h1>url : {{url}}</h1>
. k6 [! ]5 @& ]8 w7 {1 Y - <h1>Alexa : {{alexa}}</h1>" c2 a4 @. ~/ o' |. K- E7 [
- </div>
U! ^: ^! ]. v! A - <script type="text/javascript">' P( w) j' m; ?" v) C% j+ C
- // 我们的数据对象
! r! s% o- |& O0 z: j8 q+ R - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" u+ s9 M' p# r* v. i - var vm = new Vue({
: i# F; B' ^7 _9 b3 q( Y% w# W - el: '#vue_det',. w* C1 y- H0 I' s1 I8 {7 q1 U
- data: data
0 |% @/ t# Z1 W) C2 G - })2 X, w) I; P+ P s) W9 t1 T5 V
- // 它们引用相同的对象!4 Z! v9 F- R' J2 l' M' X
- document.write(vm.a === data.a) // true
4 E+ o) s: g5 I$ O: g - document.write("<br>")6 k2 B- N' r, z2 l$ n
- // 设置属性也会影响到原始数据. \) J9 ^1 I0 {9 `' ]
- vm.site = "Runoob"8 `3 s: S) T" C- ^8 G& y" i, z" ^$ S
- document.write(data.site + "<br>") // Runoob: H) a, r g `" ^! x: ?/ }5 q" t
- , ]1 Y# Z( d9 B! R& k
- // ……反之亦然
" b8 O' F# ~9 N: k - data.alexa = 1234+ q$ f5 D3 e% h1 @9 ^8 m5 _
- document.write(vm.alexa) // 1234$ q7 B% U9 ^( d' f- b: W
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
( K. X- G( A9 g; Y* N - <h1>site : {{site}}</h1>7 Y+ C5 z3 a& |0 v I( k6 G
- <h1>url : {{url}}</h1>
. I, A. H: y: W: D1 F - <h1>Alexa : {{alexa}}</h1>8 _* C. }2 @2 G0 D6 \; z! ~1 h9 d
- </div>; K" O9 E& f! ~$ \5 F' ]7 D2 I
- <script type="text/javascript">
$ m/ m* e7 @6 P4 Z - // 我们的数据对象6 |: i. F8 \( \+ E' r, v4 l$ F5 w
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
5 Q/ z/ b7 \+ g9 u% f u - var vm = new Vue({6 x+ Q: E3 Z3 b3 k
- el: '#vue_det',
. i+ l9 Q! {) A% Y% P - data: data/ t0 ]) n$ E+ k& I- O% s) p
- })) B) H6 {& ]5 j3 L I
-
6 R( q3 G, V) n - document.write(vm.$data === data) // true9 z3 W6 ~4 A/ ~9 h2 R
- document.write("<br>") // true
# {9 h F/ G9 h( x5 f. E S4 P% e - document.write(vm.$el === document.getElementById('vue_det')) // true1 e7 j7 ]: F& _' b- H' ~) X
- </script>
复制代码
1 l- V; R$ g2 N* j. P1 e4 t+ w3 w$ n' h1 p; Z# D
|