|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({- Y4 U1 b0 \, y% x( F- |& e
- // 选项
# j2 ]6 r) ?, O ^0 e - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
. U \/ o/ g4 `6 W/ c - <h1>site : {{site}}</h1>+ K" N$ y8 |0 q) F$ O, Y: C( h
- <h1>url : {{url}}</h1>4 ~% J# P' d0 h! u* D
- <h1>{{details()}}</h1>
1 U/ v' I1 h; R3 w2 H { - </div>
* ]2 {7 `2 n/ B3 W) A' i - <script type="text/javascript">
. B! k* F' T- z2 r4 j8 b - var vm = new Vue({
! G% o5 ~# S# j) A O - el: '#vue_det',
% ~3 i7 @0 H- F& ]' L - data: {
2 D6 I8 z4 o* ^ - site: "菜鸟教程",
4 U2 A% T0 t) Z1 k - url: "www.runoob.com",/ _. g1 S- G$ W \& o5 a$ I
- alexa: "10000"
+ H$ q; {, h* u6 T. C; f/ K - },5 @* ~+ o' I! }' A8 U* ?! n/ _
- methods: {
2 ?' N" H+ o* X* X- }/ l" y$ T- L - details: function() {* z5 P3 x2 m* L1 \9 V x
- return this.site + " - 学的不仅是技术,更是梦想!";
9 W$ E- b; A0 X) m! h - }# o r5 D5 j* f! _0 B
- }3 |& F& {6 J: b6 s7 `5 w
- })% b8 l b6 B8 [: ^1 x, I4 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">" r# p8 W/ a- ?, I% L9 ]
- <h1>site : {{site}}</h1>
- l* ?: x5 l. g& L& Y- R - <h1>url : {{url}}</h1>% @# ]3 d& q9 s x- l
- <h1>{{details()}}</h1>
1 |# k1 f) L$ R+ _- w9 v3 E - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
8 g1 C @8 q2 c! m - <h1>site : {{site}}</h1>
* p! X0 O3 Q! o2 T5 E# Z - <h1>url : {{url}}</h1>
1 F8 o8 ~' ^/ C1 P# k h/ S - <h1>Alexa : {{alexa}}</h1>1 v! s8 `3 R( Z; J* V' o5 f! X
- </div>( a. ]) Z* o! [! S# z6 [. h
- <script type="text/javascript">8 k; k6 e) ]5 l' a: @! @
- // 我们的数据对象
9 L9 N2 J, v& C" S8 u - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
: B- J% @7 h* a4 O; K - var vm = new Vue({- d8 h: T( e6 ?- z
- el: '#vue_det',
% r* N4 Z4 d ? - data: data' N$ ~" |5 S# h5 W. \
- }); D5 I! ~ R/ w% x3 J& \
- // 它们引用相同的对象!) |0 ?. i3 u' T# c0 U P5 [% m4 L
- document.write(vm.a === data.a) // true. u6 k* o# J$ B, _/ e0 p, l. u
- document.write("<br>")
: c1 G$ y5 g& Z& o - // 设置属性也会影响到原始数据, N: w' p" Z' M2 o& q( N3 c9 [
- vm.site = "Runoob"
/ W/ M0 o* c. E2 w( S, E - document.write(data.site + "<br>") // Runoob* j: W& f2 _8 J3 c
-
- F0 d) O1 i' j2 J6 q2 S/ w' [/ n - // ……反之亦然
% w; _0 E1 ~1 B - data.alexa = 1234
7 Y6 s3 \7 E' L - document.write(vm.alexa) // 1234' S3 [& t2 N0 ~4 O) H, m
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">0 p1 }) K% B5 C& O
- <h1>site : {{site}}</h1>2 u% j0 J8 h2 M2 N3 W
- <h1>url : {{url}}</h1>
# l- O9 w2 _, G% W% ~$ i - <h1>Alexa : {{alexa}}</h1>
6 L5 V2 P' {5 W, z- N - </div>
" Q3 W% M; Q4 ~; L7 R7 \- J - <script type="text/javascript">
) q( n# w7 w; C - // 我们的数据对象( K1 u' ~3 K5 \% _9 G$ T
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
$ c" ~1 U( k1 g- O4 ~2 o" d4 t7 z& M - var vm = new Vue({; z+ A1 _5 D9 q6 ^: s
- el: '#vue_det',
: h: n$ B6 D2 C4 C - data: data
. e, U1 u; F% z - })
3 H2 b/ c3 o& W# t6 Z9 i - 0 h6 q5 s9 T( j) A \( a, c& m
- document.write(vm.$data === data) // true
' ?5 p) _- _3 g, s% q, V0 G - document.write("<br>") // true! L- ?& ^, \- h+ A
- document.write(vm.$el === document.getElementById('vue_det')) // true
7 P7 s' P+ O5 X& `1 _; {/ j3 F - </script>
复制代码 % M% ^$ y. h+ G
8 `, c; t- K. B0 G6 a |