Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({/ V: B& i5 B3 c9 U
- // 选项
# z) G1 g% f5 e5 F/ J# {. j' y$ J - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
* T" S! K( r& M# d - <h1>site : {{site}}</h1>
$ o9 a* r: e. w - <h1>url : {{url}}</h1>( j( T* A! `& Y5 T( Y/ ~( w
- <h1>{{details()}}</h1>" S& B5 n! l0 h" E8 n
- </div>
! V$ m) V( W2 J8 G, I( l" L - <script type="text/javascript">5 A, @8 O. I# t% C; L# b( y) v& s
- var vm = new Vue({5 q7 Q( b3 h* B# r j" J! V
- el: '#vue_det',
$ y5 C3 M3 V( a. {7 W - data: {% u+ P7 _/ R2 n1 N" r" o5 i
- site: "菜鸟教程",
) k/ ]4 S& A- S$ } - url: "www.runoob.com",
4 Q6 i1 n+ N0 a( A# x - alexa: "10000"! }8 B/ `/ }9 A1 o1 Y7 U
- }," C2 l6 d/ x) W: ~
- methods: {6 a# g+ Q: R( c- y4 }
- details: function() {5 \! {6 N5 U5 L2 R! p& s* F
- return this.site + " - 学的不仅是技术,更是梦想!";& [6 c* E% }; R6 O0 U( R
- }; J3 Q5 D& P( A2 Z$ v$ D1 J
- }( }/ X6 X! a6 T) E e
- })
/ q; I# s. K$ \& ?" T! m( e - </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">
" w0 u/ S! M4 ] R4 h - <h1>site : {{site}}</h1>) G* j9 F/ B8 e4 C
- <h1>url : {{url}}</h1>
8 w% v/ O* ?* i; X8 P( A - <h1>{{details()}}</h1>7 P0 v! W% a N7 l4 y
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">* _4 i" L9 i/ G! r! }+ ?* m. u0 u
- <h1>site : {{site}}</h1>: z( V: O6 E" r/ k' L0 Z- C
- <h1>url : {{url}}</h1>5 }8 l. t- O7 H/ m/ e: W
- <h1>Alexa : {{alexa}}</h1>) o7 w8 V9 n9 x" n4 A1 q
- </div>
- ^/ e4 V# x9 t6 I! A0 v" e - <script type="text/javascript">6 p+ i3 t5 ^( I5 A! j; N
- // 我们的数据对象
/ w# _7 ], ^4 {* f4 A - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
+ }; W, G, u$ R7 r - var vm = new Vue({5 R' E; Q9 w0 R2 @
- el: '#vue_det',6 X- v$ h9 j% N% g" x) z0 `% {
- data: data2 g, r, P- Z8 b6 |! c
- })
& {) d6 ?( n6 D+ U - // 它们引用相同的对象!* _1 h/ j. N* [ T( S2 }6 x
- document.write(vm.a === data.a) // true+ `& f/ W4 [+ _6 [. m
- document.write("<br>")
5 ^7 g/ E$ _8 i2 c5 H7 | - // 设置属性也会影响到原始数据7 i! l+ p4 ~3 T: o) B/ T9 t
- vm.site = "Runoob"3 A! Q3 I, f: W) g
- document.write(data.site + "<br>") // Runoob
( z t7 U/ t6 M6 k - 4 @" s5 P [% T+ z& x* Q! n4 w
- // ……反之亦然. o/ B H* I8 I0 B: H8 l) G& [
- data.alexa = 1234
' d$ V; f8 q" q9 ?; c4 V - document.write(vm.alexa) // 12341 f7 }' U f0 t; Y+ r' q6 n0 E5 o
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
: Q: N& n2 }, S) a - <h1>site : {{site}}</h1> b) k$ c' O0 z5 i
- <h1>url : {{url}}</h1>- `/ `' t2 b# ` m( y4 ^
- <h1>Alexa : {{alexa}}</h1>6 ~* U7 S9 V! a7 H, {7 w
- </div>) ]% b/ c) z* t' w$ I5 H
- <script type="text/javascript">8 |& R/ |0 E% k6 J3 d- W, W
- // 我们的数据对象
) |0 E2 X0 }; O - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
& W) {0 \; [0 S - var vm = new Vue({
: t- Q; v; w: J" x/ z* r1 j - el: '#vue_det',
/ c5 ?. H' e+ {" H - data: data
7 p; b& q3 p2 J$ \! A4 t- g! N: y - })
U3 a& e: n' O! D4 N; q -
. Q; m6 R. `5 G# q - document.write(vm.$data === data) // true5 J) ^; _* E) q8 E
- document.write("<br>") // true) h# ~! C8 f9 N: J. M* k
- document.write(vm.$el === document.getElementById('vue_det')) // true
! N: ?6 }9 o) E- x - </script>
复制代码
/ J. s, z* s! Q8 a0 O) Q; d f* j
! N, S5 I( _8 d8 E' O/ n |