cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({! H0 T1 C# P! G/ h/ ^4 c% l
- // 选项* g7 c! m- ^1 h: K/ r9 v; P8 B; L
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">& ^5 A4 E1 T2 \
- <h1>site : {{site}}</h1>
: M# n a/ Y, D - <h1>url : {{url}}</h1>- _: V- X e" P
- <h1>{{details()}}</h1>
6 o* N/ f9 M+ P* d - </div>
- A) H3 }1 W: y/ w2 c - <script type="text/javascript">
, N2 I, H! ?: P( m0 |7 p - var vm = new Vue({" P7 O7 q- L S& A( u, l
- el: '#vue_det', P+ u3 N- {+ h/ ]' l
- data: {. V& T {3 v! U/ b' {9 j" A6 [
- site: "菜鸟教程",2 c4 d8 n$ X Q- C X- I8 X+ T1 _& A
- url: "www.runoob.com",
9 M; r+ c. C% i' l7 F - alexa: "10000"
$ K# ~" @ Q! T2 N# H - },9 L& g2 W* w6 _% ~' u
- methods: {
" Z* L) a& e0 X - details: function() {. {. ~, M7 t; _
- return this.site + " - 学的不仅是技术,更是梦想!";
, C; {- M4 W7 `9 S- C& Z - }( d5 [2 b6 }) y. @$ ?
- }: R0 |8 S6 }& h4 I7 d& t
- })
; D T- ]& y" Q: G9 W - </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">7 [# K8 r6 G* Z
- <h1>site : {{site}}</h1>
0 e+ ^7 b' m0 W/ n, K @ - <h1>url : {{url}}</h1>' t; I, U( C4 M
- <h1>{{details()}}</h1>* ]8 k' w" p) x4 k
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">
3 q* g. D4 e+ r/ \ - <h1>site : {{site}}</h1>7 {7 M5 _& z$ h* z. C# f1 z; Q
- <h1>url : {{url}}</h1># ?+ t" d$ ~! j
- <h1>Alexa : {{alexa}}</h1>
6 I {& F8 G7 [# B1 O& `* u; J s - </div>, F8 J5 q0 M( V. y9 `1 H, T
- <script type="text/javascript">
7 P2 S1 `) p9 d8 e9 L - // 我们的数据对象
4 f8 t1 R+ T! C6 T5 r, L# m9 Z) \ - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
5 @6 |+ N0 a9 D+ \3 E - var vm = new Vue({/ a! z' k5 X5 E# M+ v
- el: '#vue_det',
! T) M' V# N; `1 d& ` y% |$ [ - data: data" m1 w- y: o4 l
- })' g7 Y7 z. X/ a \
- // 它们引用相同的对象!
2 b+ y) ?$ p) x- _: h+ o+ q - document.write(vm.a === data.a) // true1 m ^: ?5 Q8 r# T7 ^
- document.write("<br>")
" E6 U$ Y! `2 ^5 j" ~ P) ` - // 设置属性也会影响到原始数据( A3 t7 c! c$ @4 k
- vm.site = "Runoob"- P; {; s% M1 M, U& N/ C
- document.write(data.site + "<br>") // Runoob
, i- r3 C: G* n; W/ @/ E7 }: N -
4 Q7 m. X/ O' O. }1 @2 u1 f( t - // ……反之亦然
. |( f6 m8 b: l9 {% i, r6 f - data.alexa = 1234
% B# g9 U+ \! a0 b1 t+ r+ U - document.write(vm.alexa) // 1234% t, h5 v/ K- W3 S1 }
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">
5 h& l% g1 v6 R/ g. f - <h1>site : {{site}}</h1>
: b% X, l2 W/ \8 L) [& ^ - <h1>url : {{url}}</h1>- _3 c8 W& X% M/ E8 r( Y
- <h1>Alexa : {{alexa}}</h1># [5 x- Z6 k! F$ F. W! ? u
- </div>
- I. c% K: v1 ]" P9 [ - <script type="text/javascript">
2 b* C0 e+ E; f9 J2 ?8 P$ n - // 我们的数据对象
6 c% P; `% ]1 l0 x) k - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 m- I- U! i" u- E; i4 {( j: ~
- var vm = new Vue({
- s; s$ a) {! K6 A* M# p - el: '#vue_det',
6 r9 y$ h4 J0 Y! |+ }0 z - data: data
; c2 C3 Z- P m# Y6 e - })
+ }; e) p2 L6 k6 M J -
' s3 ^- G. h8 J( ~* F - document.write(vm.$data === data) // true( @8 j- m) T) Y9 E' Z6 \) ]
- document.write("<br>") // true
6 F' ]6 c- G; X) e - document.write(vm.$el === document.getElementById('vue_det')) // true
' Y9 h/ c, Q, N; B7 V4 M8 h - </script>
复制代码 5 S, q! w8 B$ g% j2 s. ]3 i' R
; C; M& E. D" j# y5 z' ?- X
欢迎光临 cncml手绘网 (http://cncml.com/) |
Powered by Discuz! X3.2 |