Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
, Q$ F/ o O& w7 M7 u8 r$ k7 Q. b7 x - // 选项
! ?. f9 L D7 m$ i J% `" D - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">' X4 P8 k; x( K/ z; V0 K
- <h1>site : {{site}}</h1>4 p8 P- d/ p) A# w* O% _) \4 a
- <h1>url : {{url}}</h1>& V$ x0 n/ h- S. h
- <h1>{{details()}}</h1>. ]( S7 p1 i6 Y
- </div>3 D8 I% P8 j# e K, [+ e
- <script type="text/javascript">" @. R9 z; g7 q/ V8 c7 o
- var vm = new Vue({+ H k- T9 [! ]5 V9 _
- el: '#vue_det',
6 g9 m& t0 O: A# B9 Q - data: {! F) G$ i$ R9 i7 S
- site: "菜鸟教程",# l( I1 d1 Z" [$ v8 i, i
- url: "www.runoob.com",
- i) O8 I% Q. `- C5 l% u - alexa: "10000"
* ]0 k$ O6 ^* `$ D9 O& {9 [3 F - },; n2 s* F" [% m0 h. m
- methods: {
- i, M7 {0 h/ I& @5 e - details: function() {/ a& T/ @- G2 o1 S' Z/ o, p
- return this.site + " - 学的不仅是技术,更是梦想!";
0 T& f, v# u' x. O& m - }
$ A( F5 A$ n7 d1 g7 Z - }# l8 h0 d* b' ?$ F5 W' I
- })& Q7 b, N5 w! l$ Z& G2 ?4 F
- </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$ a0 w* ^5 |) o# p6 Q - <h1>site : {{site}}</h1>: f0 J& s* c; }1 T$ Z" ^6 @/ E
- <h1>url : {{url}}</h1>
- R( A. J' W0 b4 ?1 X( ~- N, w - <h1>{{details()}}</h1>
5 P, ]6 `$ P8 ~/ } - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
$ g3 O* j( k7 G" U: ^4 ` - <h1>site : {{site}}</h1>
- M1 n& c# K$ t7 a: K - <h1>url : {{url}}</h1>
5 O2 q. R' _- P j* Z+ s' R+ Z - <h1>Alexa : {{alexa}}</h1>) W/ n1 x! m; Y/ V
- </div>
A! N9 L7 c7 o; ?, q& ? - <script type="text/javascript">' a: ?& P' ~. f/ q& s c$ B
- // 我们的数据对象
. |; i: t, u2 P% z1 v w+ { - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}9 G5 P. l( k6 S* l
- var vm = new Vue({
3 [+ R3 U$ Q e. V - el: '#vue_det', h v: V. O; Y! M' f
- data: data
3 Y4 Z: s$ `' \ - })
% E" c: ]0 V8 t( k - // 它们引用相同的对象!
! ?# @, n. M. B4 O - document.write(vm.a === data.a) // true- Y* V0 O4 k' G3 r) C
- document.write("<br>")
) b, u' e+ o1 g* {$ d' ?$ J - // 设置属性也会影响到原始数据% A& T4 f6 c+ R; v, D- J
- vm.site = "Runoob"# @) m$ m& G/ R, _
- document.write(data.site + "<br>") // Runoob* x' \5 n+ b3 o6 I) A0 ?
-
1 f# j$ ~6 x# n# ]5 z* q - // ……反之亦然% i7 i& N% U3 F5 ^
- data.alexa = 12348 w: P3 x8 Z7 N( r6 G3 \
- document.write(vm.alexa) // 1234" Y" K* R" @- N) t
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
8 v' o) S8 P& \! p) |) y: W - <h1>site : {{site}}</h1>
' a0 w+ L9 |6 u- @/ f - <h1>url : {{url}}</h1> m: Z, \3 p5 ], d+ e" E% \
- <h1>Alexa : {{alexa}}</h1>* [4 D1 o3 q5 M. n4 v- A
- </div>& R, f2 h0 Z7 B# I+ i$ d
- <script type="text/javascript">1 v( x9 ^/ U" V% f# Q# X
- // 我们的数据对象
$ P' t9 [% w( F6 a: i8 g( i# H - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}. w2 y: k( j9 s/ R& \
- var vm = new Vue({
0 [8 u h4 x+ b - el: '#vue_det',
0 V0 N* T' y1 \9 F- l! \ - data: data
' V- w* @ k3 c- n - })/ A4 l* M \7 v, [
- " h$ e, B$ ~( P2 N0 t7 U' D
- document.write(vm.$data === data) // true1 I# h0 @0 k5 ^: d( R6 [
- document.write("<br>") // true3 G8 L6 n( ^; r7 V
- document.write(vm.$el === document.getElementById('vue_det')) // true; L8 R, o1 d! A! c9 y& n: z
- </script>
复制代码 8 Z4 N& b6 u& {& _/ G0 ^$ @
8 L0 `; i$ l- ]# v$ N8 w
|