Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
* L4 q( I( k1 u5 T' B. c$ S - // 选项
) V* z2 V5 @0 A - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">/ j5 x& b' l& N. s: D" N) ?' i
- <h1>site : {{site}}</h1>
! o q7 c- z3 J# v. h, [ - <h1>url : {{url}}</h1>5 t+ c6 E/ ^+ w% u
- <h1>{{details()}}</h1>3 H/ i* T- m1 `$ F. t$ W y; W9 `
- </div>
0 I" [7 n: F" ?. T5 j - <script type="text/javascript">( b* F. U* c* ~( n% I) Z
- var vm = new Vue({# C- o) A7 [9 s5 w
- el: '#vue_det',' U+ H4 c. v' x( c! i9 h4 D
- data: {* p: g5 |/ s% N. A' [, E+ h* r
- site: "菜鸟教程",: b# n3 X2 l B! H# h
- url: "www.runoob.com",
" ~3 k. x9 n' k" ^" D3 h - alexa: "10000"1 x2 P7 U5 n3 Q8 ^& U+ G
- },
3 ]! H& \7 \) \; ?2 u$ g - methods: {% K3 \8 t4 ^% M/ T# b
- details: function() {8 q+ k6 }* `" W0 M
- return this.site + " - 学的不仅是技术,更是梦想!";
1 s! _ G6 N; L2 l3 G' {5 J - }
4 t. K) Q4 ?, I# }0 t, l8 q - }% \: z9 e' E( G
- })
7 F8 x% t% S* i2 i l* { - </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">+ b( ^6 f! V/ `7 N: C8 @6 K
- <h1>site : {{site}}</h1>2 u: c' x6 M6 @ U' f+ a' ]
- <h1>url : {{url}}</h1>
! P9 v. m- n$ `; U8 r# r - <h1>{{details()}}</h1>. c) T4 t5 O) G' Q9 ?$ p+ ]: O
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
9 g+ R6 ]7 N! P( |4 t' E- Z: b - <h1>site : {{site}}</h1># ?& U/ r2 o1 i7 r1 ^
- <h1>url : {{url}}</h1>
2 L. \9 z V( B - <h1>Alexa : {{alexa}}</h1>) ^% J0 e2 d+ U) k( D" N9 l
- </div>; g! R% B. m6 K2 {0 h
- <script type="text/javascript">* }& n3 l: I# D
- // 我们的数据对象; L4 {( Z) P e5 U. x
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 B' p3 O/ C9 m0 D+ t
- var vm = new Vue({( O& F& S7 F6 z! J7 F& ]" ~, Z" K. f
- el: '#vue_det',0 {4 |9 x" L" {3 [+ m7 R
- data: data& w4 K( r' H' Z6 J$ _0 I' {
- })
/ d! ^. U z% { - // 它们引用相同的对象!
' Y8 w P, Z c. u6 I/ f% a: e - document.write(vm.a === data.a) // true8 L7 i6 ~6 F% f6 O g, z6 j
- document.write("<br>")5 @+ N4 w% j0 P. z
- // 设置属性也会影响到原始数据
& X$ ]: a& M* p/ ^ - vm.site = "Runoob"
3 _/ g4 }4 _7 K9 Y {% Q# T# o - document.write(data.site + "<br>") // Runoob$ `" I9 A. H( a0 ]8 K+ t s
- 1 q9 ]; W; U' x, H. r
- // ……反之亦然1 ], j( h1 e! w Y6 a, Y5 w3 E2 u$ O
- data.alexa = 12346 ?) F- o5 V9 _! i+ W- b
- document.write(vm.alexa) // 1234- b8 s; G; l+ ]
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
; r' y* x8 J' E5 I - <h1>site : {{site}}</h1>
# ~; x% K; c" g f4 [8 t8 ~+ c# i+ A/ O - <h1>url : {{url}}</h1>
* x/ b+ c: V+ V8 _ - <h1>Alexa : {{alexa}}</h1>
; A! I& g% A: T5 J" h0 Z - </div>. [0 E0 h8 f" h5 S1 d8 m; C
- <script type="text/javascript">
# @. O- ~& A+ q _) _ - // 我们的数据对象
% _% y7 T7 f- b6 z2 C) R - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
- u5 |9 Z) ]% K/ m/ ]2 B2 S - var vm = new Vue({- w/ ?" }# U" r- Z' b+ r; B
- el: '#vue_det',
- e- _' I( T: v) A$ c" E - data: data
6 ]. l7 X f8 o) U+ Y - })
* |8 Q5 N! d% q& _; k! i - - U- E# _) t1 l' `; s7 p
- document.write(vm.$data === data) // true
, g2 n2 M5 l1 c5 o, r( I. {6 ]% |9 ^ - document.write("<br>") // true
5 k% S9 V3 A! [; c: c4 t - document.write(vm.$el === document.getElementById('vue_det')) // true; P1 t3 s& x6 R0 `% q, r. O
- </script>
复制代码
6 i% _2 L. r9 s/ W3 f$ Y8 }0 ^9 n( g( C$ G0 Q# u& s* ]
|