|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({. E p$ R( ?) `) v# A6 K
- // 选项& Z( h# N1 C. @. |2 `2 M# a+ u3 Y4 E$ B/ f
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
) j- u; b/ r: j! m4 g - <h1>site : {{site}}</h1>4 T i& i: ~0 T# b/ |
- <h1>url : {{url}}</h1>
0 k" u, K. B( W. i - <h1>{{details()}}</h1>
0 j; D" q' u5 n8 [- J; }$ g2 Z* U - </div>
2 y( t) _) r2 x+ B - <script type="text/javascript">
' j$ K, b7 R$ i t. @1 R7 m - var vm = new Vue({
3 L* u. p. h! r - el: '#vue_det',( ]+ _5 y# }$ c1 T$ }: w, Z8 f
- data: {
3 N4 b! M4 H9 P' a% ] - site: "菜鸟教程",
" c2 F0 x( N& a0 z6 V - url: "www.runoob.com",- v* |# |+ G2 ?
- alexa: "10000"4 T& ^# k! {8 r
- },
H' Y, b8 q9 B+ p E - methods: {7 s/ z# r) y2 t2 n" q6 d% u3 e( T8 z
- details: function() {
3 B. H) }* Q! B& O1 z# z# S2 u - return this.site + " - 学的不仅是技术,更是梦想!";
" a3 l4 i0 x# b4 R* f - }
* m$ A0 M& o! a; u; | - }; a* V2 n3 h. y& X) ]
- })
. Z0 `+ E: u G$ D - </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">; O" B: |# N, r, ? q: n7 {2 N( d
- <h1>site : {{site}}</h1>3 m9 c& g% P7 K* H
- <h1>url : {{url}}</h1>
. V7 y$ F3 k" w, B8 D( }9 f - <h1>{{details()}}</h1>, V) l }4 f4 ?! q& A
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
/ Z- e2 P# i# s3 g, {' x - <h1>site : {{site}}</h1>
6 k4 z1 F2 N9 o l$ k6 C+ a - <h1>url : {{url}}</h1>8 \8 I5 E4 `9 M4 x
- <h1>Alexa : {{alexa}}</h1>/ H- r) g5 ?: T& G
- </div>! d, M8 h' \# R* W! \
- <script type="text/javascript">
1 ^/ o2 F7 l3 y: |& j4 g7 ` - // 我们的数据对象9 g1 y$ Z7 l; g8 }8 ]- t9 T
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 B0 y4 X8 V) y8 g* z! \
- var vm = new Vue({1 c* Z1 R6 O! C! T! i0 s+ K) _
- el: '#vue_det',
0 g' X6 v# H* _5 e) `% r - data: data
/ m" c1 k% I5 ] - })/ e7 Q- r, @, z% u
- // 它们引用相同的对象!
( e4 K1 c+ ]% o' R. b0 Y1 B - document.write(vm.a === data.a) // true
+ d) _/ Q( \0 Z9 F - document.write("<br>")
$ }, X6 q9 R- d& X6 S# W" h - // 设置属性也会影响到原始数据" U) [6 y. U- ^
- vm.site = "Runoob"* |0 M- r' Z% H
- document.write(data.site + "<br>") // Runoob
5 z0 H' a' _' p4 I -
" a( U/ V: `6 e. c/ R% l - // ……反之亦然# b- H \9 F+ Y7 ?4 u
- data.alexa = 1234
4 f: g8 l( i2 G - document.write(vm.alexa) // 12342 p$ t3 r+ t1 d- T' q5 x3 \
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">1 g1 M8 L) {$ t S" Z1 p* x9 S+ l6 T
- <h1>site : {{site}}</h1>
# }0 G7 e0 `4 Z+ n - <h1>url : {{url}}</h1>
9 @: N5 q$ l8 i8 g, F6 [ - <h1>Alexa : {{alexa}}</h1>
8 J. X" V+ \8 O - </div>
X6 S5 s% a* g P1 S - <script type="text/javascript">) [; }) m9 T8 ~1 g3 B* L) v4 z3 o. b0 L
- // 我们的数据对象
' |* }9 d+ g* M6 { b0 v - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
& z- [& y' l5 X( D# H# s - var vm = new Vue({
8 I( W( x! O- m1 K4 t7 G: b0 m$ T - el: '#vue_det',. ]* G4 N" o3 `1 e. n( A8 b9 G
- data: data
! v* [$ q1 i- E- W& M7 l - })
# {2 p; T) [/ l8 h# i3 G! g -
) }* V5 l4 }! J6 I2 l - document.write(vm.$data === data) // true1 b' F: r8 F; k
- document.write("<br>") // true
e4 D/ Q* j* C" Y; d1 T - document.write(vm.$el === document.getElementById('vue_det')) // true! {- b g9 y% z: T* \0 O& w
- </script>
复制代码 X F1 c( d0 O- P' H T& V6 U
4 r* _! U' N, {2 |* k |