|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({: [; O& B) d4 \5 ~& F6 U
- // 选项- Q; a5 s4 m# q
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">: ~$ ~6 A3 [$ m1 f& S" m% i
- <h1>site : {{site}}</h1>
6 k/ E) Z/ Z' d, b$ M. M - <h1>url : {{url}}</h1>! m9 U: p6 z/ c0 E; }5 B
- <h1>{{details()}}</h1>: V6 U% n- ? N" }- K, J
- </div>
5 M1 g% R5 `7 K. B u - <script type="text/javascript">
& L: D; l( {# Y6 l - var vm = new Vue({
7 U) ~8 Z, M6 P1 D - el: '#vue_det',
0 I" c( O/ a* n$ A% p - data: {
) M+ m4 H f/ u" A1 ]3 ` - site: "菜鸟教程",* j" m- b8 P4 Y. B, c" w; L4 a
- url: "www.runoob.com",4 \+ @" @* i7 t9 {1 x7 P* f" Z: t
- alexa: "10000"& D1 N9 F' V) E. ^- r5 s a# z
- },& _6 c) Y% Z6 G1 { Z. {" W
- methods: {
[3 k+ k7 r) a, e2 r6 E4 p - details: function() {! m; a; s3 b& ]7 y
- return this.site + " - 学的不仅是技术,更是梦想!";
s" Y1 I1 m3 b - }
4 d# }& c2 ~: v' e. E! y - }
A9 S6 u, O* A' r# t3 M6 U - })
8 e" @5 I8 W0 K) f% K8 p! V - </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">, y9 l( W) a+ {8 J
- <h1>site : {{site}}</h1>. m/ @7 w4 a$ s& _9 K: k
- <h1>url : {{url}}</h1>
. Y( M( b* A* E - <h1>{{details()}}</h1>
) J$ G7 [ x, z+ ^( R, Q5 f - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">3 A1 t8 C/ V& N0 u) p) Y
- <h1>site : {{site}}</h1> o# R5 c a/ d8 ^) `+ P9 h
- <h1>url : {{url}}</h1>
2 `" U# O4 _; J) ] - <h1>Alexa : {{alexa}}</h1>
: ~ P S# w/ P - </div>9 \: K7 G8 }: v4 r0 C! U
- <script type="text/javascript">1 u: U, n( d% |6 p# \9 [
- // 我们的数据对象$ e% F. L' S4 J4 ?) \9 H* B
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}; R% G- X: T4 z8 P
- var vm = new Vue({- ~+ a7 a' L6 g' F# j
- el: '#vue_det',
' H$ m6 L1 \0 _) O. A. e) R - data: data1 ?- d, _: N! e3 Y" v0 t
- })
+ Q9 P; L J8 V - // 它们引用相同的对象!; I4 H! o7 T. j6 M" F
- document.write(vm.a === data.a) // true
, `( ]7 m/ h$ d+ _% j& @# t* ^: K - document.write("<br>")2 E0 `( C# U7 M, o
- // 设置属性也会影响到原始数据
; V7 y, @* \% n: ~% x) ]4 b - vm.site = "Runoob"3 t" ?* Y7 V4 n, |& O
- document.write(data.site + "<br>") // Runoob/ C" [2 U/ G# p, Y; E$ @% p. |1 A R
-
! R1 q+ J8 R5 J - // ……反之亦然
. ^$ x" ]4 K/ f - data.alexa = 1234
/ I& y8 ^* k. I. _$ ^% N Z - document.write(vm.alexa) // 1234
8 k* L$ Y% ?0 T6 e! q } v* Z3 D - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
2 _- j1 B# u, H& w! t$ O - <h1>site : {{site}}</h1>, b# J. b$ o$ @# a' H$ j4 Y) r5 n+ f
- <h1>url : {{url}}</h1>
: y8 A# ]' F' H' N$ u4 S/ U1 @ - <h1>Alexa : {{alexa}}</h1>( S1 B8 a; w3 y0 l# ^2 N5 B! J
- </div>
! `2 V2 ]; Z& E- S6 g. d8 ` - <script type="text/javascript">: q0 o, J* ^6 J" C5 D1 j4 s
- // 我们的数据对象 _3 i3 m, ^; |5 N
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 d @$ ^1 b" K1 g. Z
- var vm = new Vue({
4 ?+ x2 q( H7 s* e f3 z6 a - el: '#vue_det',
2 g! W! l m6 m) h - data: data
& a! G# y7 @+ Y3 m7 }# `( \6 E0 K - })
1 o6 U6 e# p/ r: W - , e0 T3 p- E/ v" D+ b
- document.write(vm.$data === data) // true+ } P. E" c+ o; u6 ]5 H! _& O
- document.write("<br>") // true
) E2 l8 i6 b% s& R; E3 Y - document.write(vm.$el === document.getElementById('vue_det')) // true$ V" q: `8 W! B: p
- </script>
复制代码 * V+ n& t3 J# f( r
* @. o5 ?& P9 d. [4 t1 U# k# r
|