|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({/ M: `- y* @) t
- // 选项0 H1 Y' _% w! ^2 Y& p
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">. u) E( m' n# W2 V! m; A
- <h1>site : {{site}}</h1>- q/ t$ {0 f( R4 ^' k) }2 @
- <h1>url : {{url}}</h1>
6 S \8 E4 d ], B' N$ k - <h1>{{details()}}</h1>
8 M7 }9 i2 K3 k, X/ x - </div>, s0 q8 y* \% K+ N1 o/ G1 e T
- <script type="text/javascript">
) A( H& X, Q, G' e# M7 y$ M* D - var vm = new Vue({2 U% ^ e6 P5 }$ A' e8 F( L8 Z
- el: '#vue_det',
5 s, p1 l4 k; ?3 O' W6 E - data: {
1 g0 E. z$ }) V5 y* g0 A+ y - site: "菜鸟教程",
& b' v6 T2 i; I* h- ] - url: "www.runoob.com",: ~, D$ M* i7 K) G! T
- alexa: "10000"
6 }1 X9 ]3 L' N `, X - },
9 e U2 z) o- a \4 j+ }- w - methods: {
+ z" U1 v8 ]6 M% a. o - details: function() {8 H% Q' m3 ~& x. X! o4 D
- return this.site + " - 学的不仅是技术,更是梦想!";" H+ ]. k( }$ d6 ]( Z) x5 {9 p- w8 z
- }( C! @4 c. t$ J% f( [
- }
. v. H3 A+ v! s! i5 X - })( }: F" b# ~% ~ q
- </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">) Z' l6 ~6 x0 f8 e7 K1 a
- <h1>site : {{site}}</h1>) {- s2 N8 ]2 A. b+ S7 f
- <h1>url : {{url}}</h1>% H5 V) g4 M. V5 @. W: k* o
- <h1>{{details()}}</h1>$ T+ ]; F3 R0 \5 k. i! K
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
" d& K% j s L) Z5 K D. b - <h1>site : {{site}}</h1>. Z9 r: W) f5 a5 M. t
- <h1>url : {{url}}</h1>7 s& V6 P5 [5 ?* ^5 @! @. |5 e# A
- <h1>Alexa : {{alexa}}</h1>
& K$ m( P, W3 D; T) Q - </div>/ I6 U$ r+ B4 `* Z* h" G e
- <script type="text/javascript">0 r ?3 w- v. D, B/ t5 P
- // 我们的数据对象& b, K( k" e' `4 Z6 C3 v
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 [9 a" p1 d7 t9 x7 |: j
- var vm = new Vue({
3 L3 l) J4 z1 S. U) b+ r n - el: '#vue_det',
" X$ t, p6 r* W L5 v+ W - data: data/ G: @& E. r8 B y$ Z1 v: f
- })
- m6 u" l- @( @* a, X - // 它们引用相同的对象!
/ [+ N5 _* s9 ^( ] V0 O - document.write(vm.a === data.a) // true
9 i) p5 e; S' D - document.write("<br>")
q* O, D% M, g. w* @ _ - // 设置属性也会影响到原始数据3 k( g7 x/ B2 O+ o* D6 @
- vm.site = "Runoob"6 c7 J' f; h! j5 b. b
- document.write(data.site + "<br>") // Runoob
4 d; n: _8 d( h* _7 D9 c - , T* p4 ]& ~: F1 Q w% I
- // ……反之亦然
$ z7 U4 S( l) z - data.alexa = 1234
( N* y, V3 K* z) I$ O* L% k* x - document.write(vm.alexa) // 1234; S" U7 Y ]) y) D# m
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
5 F9 F4 t1 ]+ \ - <h1>site : {{site}}</h1>% I: u6 Y! E/ T0 M8 I7 r* D2 p
- <h1>url : {{url}}</h1>
~% a- x, G( w0 Y; S3 y5 ~ - <h1>Alexa : {{alexa}}</h1>
! r2 N1 C) \, ? - </div>
( j R U9 ~. F/ S/ W - <script type="text/javascript">" }& B2 r. c. y
- // 我们的数据对象
1 D$ d$ S5 e: q6 w! L - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}3 X+ J5 v5 z2 F" h
- var vm = new Vue({& r/ v# [6 }4 j3 x
- el: '#vue_det',
0 @; e' R+ m) ` - data: data9 h" d% z+ t$ b9 ^
- })
% \% u; |% s7 v& o7 T r6 X - - I* l/ z" O6 J5 G& e1 }
- document.write(vm.$data === data) // true$ q' m7 f- B6 {2 J. ]
- document.write("<br>") // true
8 N+ T+ T2 ~ w& x( O - document.write(vm.$el === document.getElementById('vue_det')) // true
+ U2 R, w% I, i- E, H& P3 N - </script>
复制代码
9 Y- x5 V+ n9 Q: r% q1 a* M7 G# T6 `% @$ u" F. M! ^8 _0 P
|