|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
# |8 v) p' s7 y0 i4 [6 ?6 B - // 选项* N& @/ f5 s; d4 |
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
9 h) r. `8 K8 u" c - <h1>site : {{site}}</h1>
, h/ E/ [' M/ @ - <h1>url : {{url}}</h1>
S5 C6 j6 A- y( V - <h1>{{details()}}</h1>: [& N, r5 m* W# B0 E, M/ x
- </div>
5 J4 n& z2 J$ q - <script type="text/javascript">9 x* ~2 K8 q! s N; e" i
- var vm = new Vue({
% ?; F! h: j; ~ y2 b/ X - el: '#vue_det',$ K9 d( [' @. w ~# D
- data: {
- [) m: w- E$ ` - site: "菜鸟教程",& K5 J. R0 |; a7 Z, i l
- url: "www.runoob.com",
5 `0 L: h. L% x) |5 F - alexa: "10000"
8 Y0 b( ~3 c1 h9 t; U - },2 g1 O2 s! z: j" k% u! q7 R3 ~6 {& n; C
- methods: {4 y( p, x0 ~( `+ h4 B" V
- details: function() {$ b5 }: x. X; E7 e, C
- return this.site + " - 学的不仅是技术,更是梦想!";
# g8 ~% Q8 H1 i+ t6 u H - }' u2 z! j, r, {9 X S" Y
- }, Y; g/ `+ O! a6 A; L G
- })* R3 c9 Z! S' }
- </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">
4 }: r/ @4 ~" a6 b0 |, n1 c6 U - <h1>site : {{site}}</h1>% c0 r, u9 r1 m7 W C1 k, z' R
- <h1>url : {{url}}</h1>* Q* e; G0 o J. g7 R9 l( P! N% R9 a
- <h1>{{details()}}</h1>
3 k. a' f; g$ e- p) J - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">: O/ b& U8 K9 O$ Y9 L- @
- <h1>site : {{site}}</h1>
# o" `9 L/ x* x5 g! T( {/ H - <h1>url : {{url}}</h1>
R' }3 ~ [" C; l- C0 J/ b - <h1>Alexa : {{alexa}}</h1>) |$ M3 p# ~) X6 a M. j
- </div>& d6 c3 c7 p/ k3 T$ p
- <script type="text/javascript">
( Q/ E! y8 W3 B) f - // 我们的数据对象! A" V1 r1 G7 [. R
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}; G% Z. h% L; F* B7 F+ H
- var vm = new Vue({
5 h1 h! X& W% P' F0 h - el: '#vue_det',
& d9 Z8 d) \; V4 z5 L2 t, X' N - data: data! ?7 E) I6 p7 v3 v7 g: W
- })5 K, e- Z/ u6 f' d/ C/ M- V$ j
- // 它们引用相同的对象!* A. F( Z& ~7 i1 l' k2 \- S
- document.write(vm.a === data.a) // true
* B% [; c$ @& T# M - document.write("<br>")6 c! z+ q8 C! l& D! m# L% \
- // 设置属性也会影响到原始数据/ C. o, }9 |+ v) Q6 W
- vm.site = "Runoob"9 g7 H8 X5 e' B( W" a
- document.write(data.site + "<br>") // Runoob9 v5 B* c$ ^$ \" k+ q; V
-
+ [4 m! V! ~% E7 ?( B0 ~/ K - // ……反之亦然1 r P" h0 R# j- G" \# L: I' E
- data.alexa = 1234; h/ U. J8 _7 @8 @# I+ v
- document.write(vm.alexa) // 1234
) N) ]# i ]! {9 G3 o4 \ - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">5 X) T+ l; L( p
- <h1>site : {{site}}</h1>
. u* \. A& k v1 u3 [5 {% I - <h1>url : {{url}}</h1>
0 g9 x5 c0 {, P3 ]* _+ V; ~ - <h1>Alexa : {{alexa}}</h1>3 W( F7 `& y* w
- </div>
$ y' P# J! c7 Z0 N - <script type="text/javascript">
" b' U' Z/ g5 t T - // 我们的数据对象8 G$ r+ Z9 X8 {6 u1 a
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}- E% \0 I) ?5 v2 Q/ ~. M
- var vm = new Vue({+ q* |; W8 b+ Z0 D; [4 ^! o! m7 m
- el: '#vue_det',
0 z7 I$ M0 |5 ]) C2 u7 k, N/ H - data: data
9 q. z* C4 a' X( x* [ - })
% ~7 G5 `7 w, j) F8 K b0 {4 e7 s - $ e) D! A9 D6 p+ h. b3 X
- document.write(vm.$data === data) // true+ c7 R# A& V! }5 W
- document.write("<br>") // true* B6 X. C" ~8 G, T
- document.write(vm.$el === document.getElementById('vue_det')) // true
$ M# s1 e/ @( }5 s0 D8 ^$ U" D - </script>
复制代码 , a3 l, W& u: @" E
; ~6 X" v P2 I% |1 X4 k+ Q
|