|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
8 G& ]) }8 L0 u8 o( h& D - // 选项
4 Q5 a( Q! Q7 f0 ] - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">3 T6 c) q ~: S8 W9 u) }0 a
- <h1>site : {{site}}</h1>
$ v* \. P! v, z- D, Y - <h1>url : {{url}}</h1>
$ ] g% _3 g; w2 ^4 Q. y- p - <h1>{{details()}}</h1>
6 w& y. z: M+ j5 z& `6 x. I2 C - </div>
+ }; e) L3 C, z) T* [4 O# M& f - <script type="text/javascript">
* ?8 d% R6 N: _, ^" r* S - var vm = new Vue({
+ }4 K" z% \ j8 [/ Y; ~ P. q9 _ - el: '#vue_det',) V7 x, g/ _+ R
- data: {
" h2 N* b$ f' X, D9 n @3 ~" n - site: "菜鸟教程",
2 q4 o8 x% d; @& n2 t - url: "www.runoob.com",
# Q) \8 j" B+ T' z0 y - alexa: "10000"
, X5 E- K+ Z7 s' w( @ - },! X4 E& `7 n! K% Y& ?
- methods: {
4 Z+ h/ p2 A7 W B# f; \ - details: function() {
- d' p0 l7 @7 H! a$ ]* G$ a - return this.site + " - 学的不仅是技术,更是梦想!";
- g% s7 C5 L- u! a) y8 \ - }
& Y% W! O" D% V! D - }4 w/ W1 g# Z8 |( _# O: i
- })
! s9 Z6 j: N, C u) L0 I1 B - </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">) f2 t! y J3 Q- l7 a
- <h1>site : {{site}}</h1>* w7 p3 `2 _* q
- <h1>url : {{url}}</h1>5 w6 x/ r* i$ G
- <h1>{{details()}}</h1>/ Q/ v8 d3 |- d6 v; I
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
; J3 k/ c( m+ a0 C4 Z - <h1>site : {{site}}</h1># ~1 _+ a, W9 g' O8 Q3 E& s
- <h1>url : {{url}}</h1>9 F& N% j1 O5 M, b# v0 \& l, f
- <h1>Alexa : {{alexa}}</h1>& s! a8 P; i% h5 {
- </div>
9 E: V8 t! j$ Q! f - <script type="text/javascript">
3 |1 N6 M9 z# Z* {) ~. H5 T - // 我们的数据对象$ a# c. i6 r1 `; ?: k0 d* ~& ?
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" L; z1 M3 h) d9 p - var vm = new Vue({
# M9 A" w/ d [7 o m) j! I9 |8 d - el: '#vue_det',& d& P9 x1 o# e1 k
- data: data6 E/ ?0 R/ e: ?) r$ K! \
- })0 }. n0 m0 n( d8 H# Q$ O3 b
- // 它们引用相同的对象!' X: P9 q" k6 {9 |2 B5 B$ Q5 V
- document.write(vm.a === data.a) // true" Y; ~' y1 Q! q( ?/ u' y$ S& }
- document.write("<br>")
6 q+ |) n$ c7 h# ?" Q# f+ V; q5 @- }1 | - // 设置属性也会影响到原始数据+ k4 V7 k6 {- T" M
- vm.site = "Runoob"
5 B1 t& V; U P. A - document.write(data.site + "<br>") // Runoob
* l3 e0 T `4 e( Q$ P -
L% ]: S/ M( q# B M, t* a - // ……反之亦然
- f! y* k a5 i& Z8 }9 K$ C - data.alexa = 1234" D- a6 m0 h N* n# ?
- document.write(vm.alexa) // 1234
" g! I3 B3 |5 W- T' {1 D - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
: H8 p. C% d n0 I& }1 H - <h1>site : {{site}}</h1>0 J- {0 T1 p2 ~4 j7 ]8 ^
- <h1>url : {{url}}</h1>: ]/ k6 _7 {5 P6 \) A/ `6 Q
- <h1>Alexa : {{alexa}}</h1>
/ h! {3 i- U/ C3 D, L - </div>0 K2 b p3 x" x8 ^9 c4 J
- <script type="text/javascript">
6 A: D" B+ k: ^* e+ S - // 我们的数据对象2 I) U* Q, Q8 I- R6 r
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
8 A8 F/ B: n6 S ~6 ~: } - var vm = new Vue({( r9 g; h5 y+ {) P% ?2 ^
- el: '#vue_det',! d4 V% V4 ]! _7 r E; C
- data: data, M" c1 X/ n1 n0 F
- })
& z, x2 Q3 S) L) F0 V4 @ -
& y: j6 E8 Y+ i3 Y2 X; R - document.write(vm.$data === data) // true9 j# b( A8 E( L8 P; A
- document.write("<br>") // true
/ t; [+ d- N( v- A- H - document.write(vm.$el === document.getElementById('vue_det')) // true
+ X+ }% s. V7 R# N- Z - </script>
复制代码 5 X! r; k) F) y, t5 D
' g" ~+ q& k$ R5 i
|