|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({, ^' L$ X. V; @- t
- // 选项
$ [( K& F# h" k. U6 K - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
. k, P# u' ?* o' s' d9 R+ A - <h1>site : {{site}}</h1>% ]& d& t& A/ H& x7 _7 O! o
- <h1>url : {{url}}</h1>* K' Y; S7 ^0 H$ G: j- F4 M) Y. h
- <h1>{{details()}}</h1>
) p; U* Z) ^( N6 o7 D, A9 U - </div>
) r3 S6 Y# R% A8 ]: j+ d% s - <script type="text/javascript">" P f2 Q" K9 w6 r$ l7 Q
- var vm = new Vue({- U9 q+ m3 F6 f, N+ ~
- el: '#vue_det',* ~4 Y2 N/ \- |2 e4 i
- data: {
( [9 w7 {* Y) O' v - site: "菜鸟教程",1 @4 w* a8 w* f1 I+ u) R
- url: "www.runoob.com",
9 @6 p7 P3 K& A2 _' M - alexa: "10000"- y! v# j) w1 t% Q0 e* X
- },
/ i3 Y0 o+ M+ U2 w8 k3 P6 l - methods: {+ |( b w& b x6 b4 _$ T
- details: function() {( _$ W- `: p" m, q3 {6 g+ E) v% T
- return this.site + " - 学的不仅是技术,更是梦想!";. ]/ O( G7 |" K* [: {( m5 s+ _
- }
9 G" e2 i9 \/ n% ^3 G - }
6 |+ w1 |; P9 o+ H- ` - }); N1 S8 F" w/ S% x; t& \8 x- |
- </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 r$ O" U7 t& e9 X! I# M
- <h1>site : {{site}}</h1>% \: c% T% W5 u% B1 t3 X6 `
- <h1>url : {{url}}</h1>
5 B$ ^! S( X- n3 a3 d - <h1>{{details()}}</h1>( z" G* ~- _6 B0 X
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">9 L& u' v. D) ^4 t/ X8 x
- <h1>site : {{site}}</h1>
7 `1 `+ S1 b# x: w* P9 S0 { - <h1>url : {{url}}</h1>' N7 m2 j$ X6 a
- <h1>Alexa : {{alexa}}</h1> s- s$ h3 B/ _. }+ A7 n
- </div>
1 B8 ~% |8 B8 S* `& i5 t - <script type="text/javascript">
/ m$ G; {" e L. L; { - // 我们的数据对象
S4 ]0 t5 H9 v - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
9 C- I! |8 E1 t" d0 p# m; W { - var vm = new Vue({
8 D3 H5 Q, _ {7 @; E+ [ - el: '#vue_det',
+ t9 K9 D, V0 W- ^+ z, j - data: data d) ?( j5 U0 \7 }8 Y R% @
- })
7 U H% k0 k/ j Q# t0 W7 j - // 它们引用相同的对象!
& J- k9 d4 H" e) w8 H w; s% w - document.write(vm.a === data.a) // true
: j# ?8 j7 E. \' K - document.write("<br>")% U8 U8 s+ `" u& z+ e, r
- // 设置属性也会影响到原始数据
9 P1 S. ]/ ~. z. \' R - vm.site = "Runoob"# }. w; W, K) R
- document.write(data.site + "<br>") // Runoob( z* p: m! v/ ` w4 f ` x, {
- 9 h8 ^3 U) Q6 |( I# T
- // ……反之亦然1 g8 j% i8 g. ], @9 u& m
- data.alexa = 1234
: f$ y% O& @" W - document.write(vm.alexa) // 1234
- A* V% K! o9 B3 J" m _ - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
- d2 q: O' a; {7 k8 W. \ - <h1>site : {{site}}</h1>! ]: N0 P. Z$ n
- <h1>url : {{url}}</h1>
# F' I1 p+ J) g( K7 A- F - <h1>Alexa : {{alexa}}</h1>. i. N$ P. f) R% ^% T. `0 @9 `
- </div> |& @2 f6 ]" C
- <script type="text/javascript">! U" F% U. X# ]: \0 E! ?5 e
- // 我们的数据对象8 K2 Y( m, ^' H/ K0 d
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
7 Y( l* u9 {$ f% d. R, L - var vm = new Vue({" v$ D7 \; Z$ @# E/ ^* c! J
- el: '#vue_det',
+ Y7 }- s& ]6 P W/ t - data: data* I( b3 j6 S. u- L
- })5 ^7 Z, L8 ~7 `. e9 A2 |
-
0 S: C! \' s2 V" Q- }" x4 B - document.write(vm.$data === data) // true
- Z4 @5 }$ |& C2 F - document.write("<br>") // true
0 f7 Y! r2 N" S; Q - document.write(vm.$el === document.getElementById('vue_det')) // true2 Y, [$ B5 i0 N% j3 W$ f4 f
- </script>
复制代码
5 n, ?5 a+ ~ E; l/ ] g
, n. ?2 \& p" u9 M! Z! l( q/ f |