cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({
& E/ ]* T/ B0 ]- B" B) N - // 选项 X* d/ K- b+ |
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">
+ v& \1 D- o6 z - <h1>site : {{site}}</h1>0 }" c1 L5 D3 l1 s( u
- <h1>url : {{url}}</h1>
9 O# [, P. W1 O* A - <h1>{{details()}}</h1>
7 t. g; _/ w# D3 k - </div>
$ @: {9 N2 M" @% X& A3 c - <script type="text/javascript">) O" ^5 G; H/ D! q+ x+ _! u
- var vm = new Vue({1 e, M' o! T. t/ a1 L5 y4 X. r% {
- el: '#vue_det',
7 N! A K1 T. `9 q' V; U - data: {
* O7 b0 T W6 m3 `1 C - site: "菜鸟教程",
5 Y/ y' c6 d: O5 ? - url: "www.runoob.com",4 I( n1 `! f7 m( R6 z2 A
- alexa: "10000"6 h+ M4 l" T3 j- ^, x4 A+ a
- },! Y( p* I& E" o5 I! Z3 s$ E' n) h$ s
- methods: {
. J& A5 J4 \/ C7 D& _5 V+ q1 N: ^ - details: function() {7 O( j2 t5 v, I8 X7 ^, y! S6 i! @& {
- return this.site + " - 学的不仅是技术,更是梦想!";
4 F' O$ n, T. ^* ~; P - } J" }4 o+ e* C6 L+ |! y
- }( \' Q2 K% p l2 l" F! b
- })
0 i3 l4 S- ~5 G/ a! X7 ^/ C# M. m - </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">
' C2 v; E4 z! H5 U" m - <h1>site : {{site}}</h1>
$ P. k7 f3 X7 i% n8 H! T - <h1>url : {{url}}</h1>0 t% ?0 ]5 U2 X) ]# ]3 p, G
- <h1>{{details()}}</h1>9 e) E( s. m/ I" Y5 g0 }, n0 r
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">3 @7 e6 }, E" ]- c t/ j
- <h1>site : {{site}}</h1>
2 `9 T5 \: n6 L. Z9 W+ c* A" W - <h1>url : {{url}}</h1>
: P" s8 i5 _) R6 b- @& ? - <h1>Alexa : {{alexa}}</h1>* R0 M1 @: V2 m/ [) ~/ e0 Q% q
- </div>
% o7 @) E) f% n P) f9 \. Q' K - <script type="text/javascript"># f" s1 r$ Z# v' s
- // 我们的数据对象1 n+ c1 m2 I0 |% ]+ g9 q
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}% i! }8 i5 _1 y) n
- var vm = new Vue({8 ]4 q/ B8 `$ k
- el: '#vue_det',
W* t* r; ]3 N4 m) b& u8 s7 u7 W - data: data
3 k7 h& J% F! z% p. Q3 N - })( B5 F# a* i$ Q% L0 L1 J7 m0 V
- // 它们引用相同的对象!5 G! \) |! c9 o7 F3 x6 v( T
- document.write(vm.a === data.a) // true
2 c" x" s7 ?$ f - document.write("<br>"); u9 j7 e8 e: n3 {- R7 ?4 }
- // 设置属性也会影响到原始数据
( Z, S. p# Y. o - vm.site = "Runoob"
; a7 d+ ]0 z- a" z, j6 l% e" {* ~ - document.write(data.site + "<br>") // Runoob
) n+ T) D5 c! E; Z0 { - ) v* A* m5 [0 @
- // ……反之亦然; S4 b1 I1 B! K6 J4 H' [- W
- data.alexa = 1234+ l, y2 S! Q% i5 Q8 \7 ?! J8 K t5 h
- document.write(vm.alexa) // 1234
8 N# k6 G* [. r% D - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">! J" I/ ^1 h' b4 r( }3 i
- <h1>site : {{site}}</h1>9 j1 D: D. C+ Y! ^9 J1 c
- <h1>url : {{url}}</h1>
: z6 l5 b, |- J( I+ Y - <h1>Alexa : {{alexa}}</h1>
- ?) n9 f, U" w6 x, z% ]/ w - </div>
+ V' t0 } C1 e( d8 x* c7 l6 i - <script type="text/javascript">) j5 [. X ?6 D: S& n4 u
- // 我们的数据对象' h9 u( ]$ u+ N% G
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: z9 }, B4 G+ w* |; \2 ]! t
- var vm = new Vue({1 s8 u# b; H3 D& P
- el: '#vue_det',
2 q8 F3 @& `8 `/ ?" t - data: data
1 y4 }0 }+ i; i- A H# O - })& S: F: r$ [+ \4 H: n
- 0 r5 ]0 \& f& W9 \- D4 {
- document.write(vm.$data === data) // true
& U5 K1 ]3 y! ~/ ~7 s - document.write("<br>") // true
, c! O5 N2 @1 _* \+ G - document.write(vm.$el === document.getElementById('vue_det')) // true
7 b5 Z' \+ p, I: A. q - </script>
复制代码 4 v2 y w2 f" p, c
5 }# x" S& Y4 h( v
| 欢迎光临 cncml手绘网 (http://www.cncml.com/) |
Powered by Discuz! X3.2 |