|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({* ]9 A7 H D V, @: C
- // 选项
$ h1 M( w/ O3 _, T! e V( {2 `% T - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
; z- F$ |2 I& S - <h1>site : {{site}}</h1>& O+ P* I% b: L* h; \2 d h4 ]
- <h1>url : {{url}}</h1> U" f+ S) ^; \( f: _) T" _
- <h1>{{details()}}</h1>
7 }( O6 x6 Q% O5 X - </div>: q0 k$ }+ o1 b- @. ~! o
- <script type="text/javascript">
2 t, }3 @+ q8 S8 ^ - var vm = new Vue({! z$ j4 B: y' V
- el: '#vue_det'," t# z- x4 [9 \& P
- data: {/ |) V) [! l1 f T: a) B
- site: "菜鸟教程",
+ Y! @- r) w o, d9 K" V - url: "www.runoob.com",4 s4 l! l' i) ]
- alexa: "10000"* U. m% v: V4 Y( V* z
- },
* I# `$ a1 I. {* W0 U: N: D - methods: {
( h% P( Q, V* f( V* J8 m. [ - details: function() {+ d9 R# @! }# L$ C3 U2 G- p" L
- return this.site + " - 学的不仅是技术,更是梦想!";! V$ ^& ?" j1 H+ m$ c
- }
3 }/ B: ^, I3 C2 T: e% M* f% j - }
6 j+ A$ [9 i2 D0 s - })! Y# E$ P' p& v. Q5 r" y
- </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">. N. ?" k" k; @/ Y$ u# P3 }
- <h1>site : {{site}}</h1>
6 P1 q# ^1 R4 \9 Y; T - <h1>url : {{url}}</h1>
( q. ^+ A+ o$ N0 b+ Y; o - <h1>{{details()}}</h1># w& [: D: M8 }, w
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
& c& b; p( O! v- U' w3 F$ R - <h1>site : {{site}}</h1>4 x2 U% H, L- u$ F0 _. m! Z9 ?
- <h1>url : {{url}}</h1>
( A2 d& E( x4 y5 L - <h1>Alexa : {{alexa}}</h1>
/ H. ?% L) H3 X/ ` - </div>
* B7 W# N1 p. X& { - <script type="text/javascript">, o! I; e/ p& y8 M% }: B
- // 我们的数据对象
) P0 K8 z/ r) k - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" y7 D3 b% n* |0 H - var vm = new Vue({+ w7 X) {1 Z& ~, q
- el: '#vue_det',
/ K, |6 @: w& u/ \ - data: data
7 e" N0 X! [0 N# ]5 k w - })
- A: Z4 }# n& {! b, Y - // 它们引用相同的对象!
" \: w5 u9 {; K6 O0 Y - document.write(vm.a === data.a) // true+ G" k2 i( t% e; {' u
- document.write("<br>")
% @6 B& F' A* ^ - // 设置属性也会影响到原始数据
/ a9 L; o7 P0 j9 s4 ]5 ` - vm.site = "Runoob"
8 `# K+ @4 I8 h1 Y' G+ o4 J0 g - document.write(data.site + "<br>") // Runoob
6 Q. c" h+ y' S( y6 z, x) I x - ) y4 [& D% @# N: I i* a- C
- // ……反之亦然
: s0 b, j4 m: p+ n' a5 { - data.alexa = 1234
+ @$ k# f4 v x( D% I, f - document.write(vm.alexa) // 1234+ |2 p" U' k6 u9 Q7 ]% f
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
$ I S3 i; P4 @2 q4 T ^* b$ Q8 S - <h1>site : {{site}}</h1>
( {/ G8 @; N ] C; ^ - <h1>url : {{url}}</h1>% X6 ]. q. [, X$ |% t. w9 v6 }2 _
- <h1>Alexa : {{alexa}}</h1>
, F$ g3 n5 O4 w3 x$ ~ - </div>
: Z- J; _0 D3 c" T: B - <script type="text/javascript">! K, J U" A8 U# \& B; c7 j1 T* _2 d
- // 我们的数据对象
" p3 p# I9 K$ l) g/ t - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
- @3 R( B: Q& Y; w9 b1 W7 f$ ]' C& ~ - var vm = new Vue({
, v E: W M+ q5 Q4 R0 g; F, Q - el: '#vue_det',
2 N% t+ U! C8 {' C' Q! l - data: data
* _, t2 O2 E8 W, O6 m4 ]% i - })
5 G- e0 {6 U+ U( ^0 d( c - 2 D$ U9 { G. }# k$ }/ b
- document.write(vm.$data === data) // true
! w# O* d# K7 X3 `9 G/ [8 P - document.write("<br>") // true0 M5 K0 M. z0 p; Y* \: _: b) ~3 h
- document.write(vm.$el === document.getElementById('vue_det')) // true
. E8 K6 b) p9 x# e - </script>
复制代码 , ~+ S% S1 N! s* c, c
: U9 H' p) U( y' F8 {
|