|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
( u8 W5 L2 \/ N$ W$ j/ ~+ b( T& } - // 选项
5 m; t e& V2 u, R% E. J9 _ - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
$ ~4 ~& f& K0 j+ e$ U - <h1>site : {{site}}</h1>" H1 T5 n! F- \% x1 t: ?1 a5 w
- <h1>url : {{url}}</h1>& B: N) y& r% o5 K& n
- <h1>{{details()}}</h1>
: D" n! Z. j" Z1 Q2 \ f% d1 {! x - </div>( U* q- B4 _2 S t2 c
- <script type="text/javascript">
/ N, t) c3 b' e+ x. v. W - var vm = new Vue({
* u3 W& @. Y/ W6 b - el: '#vue_det',
1 u6 _- _7 G$ S3 q1 V - data: {
* j, L% M: C# m4 j" M - site: "菜鸟教程",# j; m2 d F7 i+ ^6 ?+ q3 S: [
- url: "www.runoob.com",
& i& P" C2 g Y: C: { - alexa: "10000", s' c5 w, V @3 f
- }," G) ~1 F o1 m. u9 O) Q) b6 s
- methods: {
. y/ {4 [5 p7 z% `% B( \ - details: function() {
$ Q G2 r* c: H3 Q: [; ? f( p$ q; g! H - return this.site + " - 学的不仅是技术,更是梦想!";
8 |/ f7 l" c$ U c) h! Z - }; ? x. x c$ _3 q
- }0 Z: q* Z* g" {: Z9 R
- })
% D: `: K' l1 G - </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">
# `( ^* ]0 |5 n4 o8 Z* h4 S - <h1>site : {{site}}</h1>; `( H. M) n, y3 p% K
- <h1>url : {{url}}</h1>
* c* ^) y/ F5 y" E! ^ - <h1>{{details()}}</h1>
- a) m5 P2 O6 q- ~3 v& U$ L k& Q7 x - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
7 y$ f* u( R9 f% C( ]$ `; k - <h1>site : {{site}}</h1>' \9 ]; T( S o- x4 s
- <h1>url : {{url}}</h1>
2 U4 q# C1 v! A8 C8 q l - <h1>Alexa : {{alexa}}</h1>7 R9 ^- \# @$ @% c$ _( r7 b
- </div>
' |) A% p. ]& s) ^2 l0 S% x' B - <script type="text/javascript">1 u: h& j3 r* b+ k# w8 [9 ~0 V
- // 我们的数据对象, ~! f0 P# v- r) z
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
$ ^% s- C* L) e5 }+ z0 c- m: } - var vm = new Vue({
G# j' y \& |" Z7 H - el: '#vue_det',8 ~, j# F. B. l$ Y- _4 `
- data: data3 {8 L% U7 T: p( z
- })
8 E' N9 B( F7 Q& } c3 `& ? W6 T - // 它们引用相同的对象!$ j3 J5 t. z: f1 x& _
- document.write(vm.a === data.a) // true
0 D0 d# ?) {! i6 W! b- W - document.write("<br>"); U7 n: n% G/ X8 u, g8 I/ k
- // 设置属性也会影响到原始数据9 _# k3 l* Z3 p
- vm.site = "Runoob"
2 ^; H: O% c, t4 N& K$ l - document.write(data.site + "<br>") // Runoob
0 [1 j# S+ c/ g* h5 x - 6 b! r+ [1 r; A* t3 g' k3 l( `
- // ……反之亦然! O( I. x* T" K( Q
- data.alexa = 1234
1 x7 k: ?+ E( X) {8 d" z& u) _2 R: u - document.write(vm.alexa) // 1234
6 I$ g3 c% q, j* Z! U/ W - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det"># G: u/ F4 t$ P1 ?
- <h1>site : {{site}}</h1>( N& e8 e- P! v* f: @4 g' d, w. D
- <h1>url : {{url}}</h1>
) i7 Q4 W, R7 c3 ^' \# T) U, J - <h1>Alexa : {{alexa}}</h1>- g0 l- t$ Z" O3 J: x8 ]
- </div>
3 t$ c% {* g8 ?% g/ x$ X - <script type="text/javascript">
# K0 o/ l7 f6 s - // 我们的数据对象1 D) e( p' U6 V& b* r0 V$ k
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
' Z1 x- ^3 j( y0 k2 Q* v" q. {+ Z$ ~ - var vm = new Vue({
3 f! s' C8 J* L V2 ?( u: ] - el: '#vue_det',
4 _% S$ J( y0 A - data: data0 [8 o: f* h* y' B2 E) ~
- })# j" w2 ?& O$ o' a+ S
- % L V& z% \+ E) S# q
- document.write(vm.$data === data) // true
9 {$ \. P& }9 i3 q - document.write("<br>") // true4 [3 V l8 T4 K) v; N% u; L, N3 K
- document.write(vm.$el === document.getElementById('vue_det')) // true
$ x$ {3 ]. c' T4 K1 r - </script>
复制代码
* p* O; ?9 \. z' _ u2 }. a! }( X
0 b \# J% p/ D4 z* ]3 e |