|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
0 X2 t& q+ S' N: Z2 v: b( Q - // 选项6 R0 {/ f" Z7 i }
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">* G4 K4 s2 \& c+ q
- <h1>site : {{site}}</h1>
7 K7 [9 s9 N# G2 U - <h1>url : {{url}}</h1>, T! a- d# D$ Y; q5 V: }
- <h1>{{details()}}</h1>
8 s/ E+ U D3 {) Q1 } - </div>) q5 @( V5 H2 y+ z% ~3 c
- <script type="text/javascript">
- G5 e. G: t& k( W& O4 r - var vm = new Vue({" s0 U- i) h8 l- |
- el: '#vue_det',* M9 w5 w7 x; d4 T* C
- data: {' a, v1 |# @- \5 {. J$ ?: I- N
- site: "菜鸟教程",
' ?4 k4 D- Y' I2 x6 p - url: "www.runoob.com",9 I4 A( n$ ^" ~3 W
- alexa: "10000"8 X* e8 U8 t' m$ h+ j
- },
8 r& g/ x1 O; X2 A8 j: ~ - methods: {
2 y, ?) @$ J* `, Q: a0 N9 D - details: function() {- X- l( t* C' m* F, l, A
- return this.site + " - 学的不仅是技术,更是梦想!";3 w; z# l& C+ a; B& F
- }
# n+ p1 R7 r" v8 E6 Q' Z - }
: u) Y. R8 `' j# Y' @4 Z% h8 O - })* T/ t+ @6 Y( E4 x1 f
- </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">
% I J) @$ ~; Z6 P - <h1>site : {{site}}</h1>
) l! ~8 o/ X6 L! L - <h1>url : {{url}}</h1>
- ?, c2 S+ t1 j# \4 k6 y: _9 E" C - <h1>{{details()}}</h1>- T- i7 e! M e2 A8 {7 W5 Z7 \
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det"># T% T# ^' Z k4 K: P, u. ^
- <h1>site : {{site}}</h1>0 Z7 E( [( x Q W/ D& v* l
- <h1>url : {{url}}</h1>* V+ b8 Z. }& x6 {
- <h1>Alexa : {{alexa}}</h1>. P; k0 V9 W7 ~
- </div>9 h# D6 e& ?- N7 i; g) G
- <script type="text/javascript">
0 E4 D. b: h$ k% z9 [( P2 R - // 我们的数据对象
3 @& U2 a( b9 [( X. S# X4 m( ? - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: W4 `2 R7 L+ i- r
- var vm = new Vue({
5 ~ S+ z$ i6 T, O2 G0 h - el: '#vue_det',
1 d! b/ ]8 ?9 i. h4 ~) u& x( T/ x0 M - data: data
G# s) g. I: W* Q$ } - })! F; I+ {# r0 g: \9 }
- // 它们引用相同的对象!9 k/ M, V6 ~8 C4 w) G
- document.write(vm.a === data.a) // true
8 o/ T1 a8 z+ G4 N: b5 p: J - document.write("<br>")7 P1 q) c" D# B2 ]4 w
- // 设置属性也会影响到原始数据
f& v) f2 M$ d8 h ], h4 _9 _- V - vm.site = "Runoob"6 p2 P: N2 }; L. X8 t( T3 A
- document.write(data.site + "<br>") // Runoob: @& w* {' Y' X$ G1 F* U
-
3 z0 S% c/ F) i - // ……反之亦然
4 d- o1 x6 z" {( {: s: C: `2 { - data.alexa = 1234
& W, ]( @ A" ^$ _1 H' L - document.write(vm.alexa) // 1234
+ b' S2 v5 _4 v - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">4 |8 h' Y% w4 A( A7 B( T' L0 O6 H
- <h1>site : {{site}}</h1>3 ?' w4 z! M' Q! d" b* K9 |# d# R
- <h1>url : {{url}}</h1>
0 V% p; D0 V% K! `- s4 a3 C - <h1>Alexa : {{alexa}}</h1>
H/ G% M' q$ \0 d. J! b - </div>4 z, f; A4 ~4 H6 `! a6 s" A' }
- <script type="text/javascript">
/ O" ^' n# U6 B$ z9 m+ @ W4 h. a - // 我们的数据对象
- u! X1 Y0 g3 T" V" U - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}! F9 \8 c3 ~! e8 }! T2 E6 f
- var vm = new Vue({
. F( B; t) y' D7 e* I. W1 x- ^ - el: '#vue_det',' ?6 k \2 A6 w. ^5 o
- data: data
$ k7 y" K- J9 g" v# v( r& a5 v - })
Y& Y u. l' f3 ]" P -
3 M, l& A0 c6 ?# C8 ? - document.write(vm.$data === data) // true
t0 N8 f1 C; F" s$ a - document.write("<br>") // true- I4 N- L& d4 p2 F
- document.write(vm.$el === document.getElementById('vue_det')) // true5 U$ [5 Z6 I5 j+ ]6 m9 \
- </script>
复制代码 - ^* U' h: j# H3 B5 S \5 x
2 L8 G! @3 N1 _. R/ Y/ K& F |