cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({& a$ K3 Z; a7 a! b
- // 选项
8 n# n5 G: ~( \' l$ N$ L - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">8 u0 g2 R z+ d5 E' J
- <h1>site : {{site}}</h1>
. E ?# A2 j3 @& E5 R* j* Q H - <h1>url : {{url}}</h1>
* ^: _% u" j8 W2 c( d - <h1>{{details()}}</h1>; O+ h) {: N6 i7 W# E
- </div>
! }* o9 r* _, M - <script type="text/javascript">
! E1 s) n2 f/ }4 a; h - var vm = new Vue({
# w8 u; {' I- z7 u5 ^% _ - el: '#vue_det',1 h. R7 d1 i) A3 A9 A
- data: { m9 [8 G( i s1 K) y; i
- site: "菜鸟教程",
9 h+ Z- N$ \/ }- r, @( w W0 a - url: "www.runoob.com",6 @; g; C6 o7 W2 a$ I5 [2 w
- alexa: "10000"
; f B, P3 V+ G# X |" v - },
2 o+ `3 J0 I$ w% ?9 W W - methods: {
2 H; b4 j: q8 ^ - details: function() {
, |: m7 [* d, ^: I% R6 c - return this.site + " - 学的不仅是技术,更是梦想!";5 s0 o# N) K2 u8 S( J- ^
- }+ H! @1 l4 ^, q: w0 U
- }
5 q' P% g' p9 J) D1 R' ~/ }: Q - })
8 W* F5 J8 f. x3 ]) B - </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">
: ]& K# j) z" }9 y - <h1>site : {{site}}</h1>- l4 a* O! s; j4 n9 w
- <h1>url : {{url}}</h1>, p) n) ^1 U; F3 Y( t H
- <h1>{{details()}}</h1>. x: t9 l! t5 b4 F& n* e. ?
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">: O$ m$ K* x/ R2 T# L7 y+ y
- <h1>site : {{site}}</h1>
! l' C; S( ~$ }2 y- W - <h1>url : {{url}}</h1>
0 b* Y% Q9 G5 K - <h1>Alexa : {{alexa}}</h1>7 R! |) N7 z6 T- P& o
- </div>9 {2 ]9 ?; {; O! i5 O
- <script type="text/javascript">
/ |3 N A5 Z" W# U. [ - // 我们的数据对象( E6 R3 P8 a3 L8 A; C4 h8 ~
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
& \- F5 P& f+ R ?$ [* B: O - var vm = new Vue({
* R2 R6 a" c! t* m# r5 X - el: '#vue_det',
/ p$ F$ d. m0 v$ r1 f+ } - data: data
' z7 h. A; X6 c4 S( w% m - })
1 |. G2 c" F, N. i - // 它们引用相同的对象!4 t5 m6 c. O8 B9 \7 [
- document.write(vm.a === data.a) // true
5 t3 w, j2 n! R7 F1 T7 D% K - document.write("<br>")
* g9 Y2 Q* } i - // 设置属性也会影响到原始数据
4 {* ~( J! G& t, l - vm.site = "Runoob"
+ F& \; y8 I* r; o/ u - document.write(data.site + "<br>") // Runoob$ j& F" G0 A1 v* d, Q& c: E
-
& e* j+ a! y/ p) t- n4 Y2 X8 ^ - // ……反之亦然/ `' d1 ~* z. U8 p4 g
- data.alexa = 1234
" A P6 S/ H3 y) E s5 X# f - document.write(vm.alexa) // 1234
3 H' {$ I5 L8 ?* ~. _; L% i - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">
9 r8 r+ \. w9 Z - <h1>site : {{site}}</h1>
. g+ |0 u% w# c6 U8 g& I& T2 ~ - <h1>url : {{url}}</h1>
_7 v0 s6 r/ u, R2 A. j0 E - <h1>Alexa : {{alexa}}</h1>. U1 y8 k3 ]5 n' o6 ?* c: R
- </div>/ ?) J( Z0 ~7 e; p: o' m. M
- <script type="text/javascript">
. J- O4 g+ _# n1 m0 @$ J* `: p' m - // 我们的数据对象3 e9 e3 V5 |: `5 d8 k+ x( p |
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
4 j1 e/ w+ {6 @8 _ A - var vm = new Vue({7 n* \6 v' b0 j6 I& `. m
- el: '#vue_det',8 q$ H: T) _0 X5 w9 ?# l
- data: data
2 C0 E( P3 E5 s9 w, H6 o% I9 V - })" g1 j' l+ w' W
- ; W) T* q! V/ I0 x* O9 l
- document.write(vm.$data === data) // true" q1 E( m- { Q7 h
- document.write("<br>") // true. x( j) T7 K& P; [
- document.write(vm.$el === document.getElementById('vue_det')) // true
& ~: ^( ~2 [# E1 i! l& J/ B$ c, W - </script>
复制代码 ! e4 Q# @9 M4 Y7 _! L/ N7 F0 E" ~
; X8 i7 r5 H/ `9 U+ s
欢迎光临 cncml手绘网 (http://www.cncml.com/) |
Powered by Discuz! X3.2 |