Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({) u9 _# E' X8 m8 }( H; }
- // 选项
5 \3 j! g" u8 ^' G - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">( G: G$ D3 L: j8 {( G; h3 q
- <h1>site : {{site}}</h1>
/ l2 a% ?1 H$ w0 R+ K* Z - <h1>url : {{url}}</h1>& N; o9 X3 Z: p' E: I7 O+ Z
- <h1>{{details()}}</h1>
: `% A5 ]9 X! C: s# R/ S7 S - </div>+ D" j; Y# J; u3 D+ O' _7 M. Z
- <script type="text/javascript">
+ z; c7 d) L. e. [ - var vm = new Vue({
8 U9 h0 w9 }7 E; f4 f - el: '#vue_det',
; L& s7 L O" o7 P5 y* |$ i D - data: {
/ W" \/ n/ `0 `& y5 F$ V - site: "菜鸟教程",
1 {4 u% |9 b8 D5 P4 K) } N - url: "www.runoob.com",- x* q( [9 _+ a; e: D
- alexa: "10000"8 ^# F% M- U* L5 ^$ u% G1 M
- },, ~2 X3 N, L7 M! \
- methods: {
! r- t7 i. c& x/ r* {$ \: S - details: function() {
9 s1 c) {; Z" y) [/ E - return this.site + " - 学的不仅是技术,更是梦想!";4 g5 U0 I7 m% ^) Y0 z
- }
1 \9 h# t$ l" f' W - }
" N$ k H8 [) K) T) h: e - })" _- r1 q1 f/ z# {
- </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">
) K6 q5 W0 e6 |$ y$ _0 | - <h1>site : {{site}}</h1>
2 A" ?1 ~( k2 j9 o+ t$ b5 \4 v - <h1>url : {{url}}</h1>2 M Y4 d: e$ D! i
- <h1>{{details()}}</h1>
3 g1 w- s2 m$ w3 D5 m3 k6 Z* B - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
2 l8 F; w8 X3 O! }8 T - <h1>site : {{site}}</h1>3 f. Y: u$ m& G* L- Y
- <h1>url : {{url}}</h1>
4 D, p, O( @6 x" s( _, J$ a - <h1>Alexa : {{alexa}}</h1>' m/ k) y/ S2 @ F# b4 B
- </div>
4 {8 n/ Z: L& h - <script type="text/javascript">
' t: ^7 G3 u' e5 N8 T8 r - // 我们的数据对象
0 ~# l0 n @+ @: E% k6 O' R - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}$ }. p8 O- E, F9 v
- var vm = new Vue({
- {* S) ^& D8 K+ r# \( z1 _8 Z - el: '#vue_det',
# S$ \! @) k1 `3 M6 V) L9 l5 \" W - data: data2 g/ Y9 L1 w( a0 i8 s+ K2 r
- })" }' L$ \9 t! @* m
- // 它们引用相同的对象!
7 q5 [- K) d4 D- B4 T# L9 ^ - document.write(vm.a === data.a) // true/ u: ~1 K4 k4 |4 g1 O
- document.write("<br>")
: X9 y. k" Z9 ] - // 设置属性也会影响到原始数据
! r/ x* _% H: N5 S - vm.site = "Runoob"
& I g6 w \: x& [- h6 b - document.write(data.site + "<br>") // Runoob
5 d, e' R. e$ d5 }- M -
" ^) K! z% @! l$ C - // ……反之亦然
9 U9 y% f1 E) X2 {4 D* C; B - data.alexa = 1234% }4 x- Y9 }( S+ e
- document.write(vm.alexa) // 12341 X9 J9 m! l/ t# |% @ J/ L2 l
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
( [* |2 p' u/ a$ C" K. V. t9 z5 l - <h1>site : {{site}}</h1>
4 z& t4 y3 A* I( u - <h1>url : {{url}}</h1>
1 N$ ~8 V, Z4 D* u+ v1 z - <h1>Alexa : {{alexa}}</h1>* `7 P$ |% D: v+ m$ s
- </div>
8 V; e- v ]! V/ v7 g- L d - <script type="text/javascript">
. q' f" N5 n5 \8 o - // 我们的数据对象
7 K- F0 d# J7 D) N2 } - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 e& H" |5 v) F0 J( a6 U B
- var vm = new Vue({
2 Y0 [& V5 I3 p/ q/ W - el: '#vue_det',
9 D6 i# \) C$ ]5 c$ T" ^+ c- Q - data: data
9 a- r3 j5 ]* t: Q - })
, Z O4 G; N7 o2 Q ?8 ^. t -
; U% W" v- g% [6 [8 Q" \: i) [ - document.write(vm.$data === data) // true
J* Q* F! O6 O+ a - document.write("<br>") // true
, N+ @+ [ \; r7 M/ L% u; Q - document.write(vm.$el === document.getElementById('vue_det')) // true
8 S7 X v; \( Q+ u4 N - </script>
复制代码
; i1 w; l0 T( F6 s" m" v
+ ~+ ^; y" ~# ~ |