cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({
) k- _6 v+ G m6 }7 N3 g. a' d - // 选项
6 S4 k# o8 O# f - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">
, V v1 _( J( Y - <h1>site : {{site}}</h1>
' C. `$ r5 y1 w9 P" k2 v; s - <h1>url : {{url}}</h1>! R6 @2 ~1 w# K% f8 M' E
- <h1>{{details()}}</h1>
/ r1 T+ Q( o! ] f& v- i" r - </div>
, f% Z" w0 e0 f" q$ k - <script type="text/javascript">* F9 s& k$ l; N* c- W
- var vm = new Vue({4 t& T8 C+ Z: d6 X5 L1 w$ P& W
- el: '#vue_det',: J. q5 i8 Y$ z7 ~: {0 H
- data: {, d( D5 v! D! C B
- site: "菜鸟教程",8 i5 r& W0 Y# T% L
- url: "www.runoob.com", y. i/ s, g1 F6 v! Y* k
- alexa: "10000"
8 r. v2 j7 X2 W, P: a - },
# i7 w* k. o+ t/ G- g% T - methods: {1 {4 U' T. Y2 J7 }
- details: function() {1 j2 \; Q. c1 r8 b* E7 q
- return this.site + " - 学的不仅是技术,更是梦想!";7 R9 }" I- i1 Z" _
- }
( C" }/ |6 B" B/ l0 N - }
! S# x8 d/ f, g9 \ - })
- c: |# E' u$ D4 W# G( O - </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">
* Z1 B h# q1 M; j - <h1>site : {{site}}</h1>
2 A: c! K0 s& ]/ t8 k - <h1>url : {{url}}</h1>
/ M8 [ |( L9 [- p9 R3 n - <h1>{{details()}}</h1>4 K E% s0 b l# F% D& e! n4 V: J
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">
: S$ C; \3 N( | - <h1>site : {{site}}</h1>6 o# L e7 i- |; T6 d5 H
- <h1>url : {{url}}</h1>. t# o: r% Q6 Q i, H" s( }
- <h1>Alexa : {{alexa}}</h1>
8 L' r( X2 e8 W! \2 ?: Q! x - </div>
( ^- d- l- ~" Y$ m% X- w6 D - <script type="text/javascript">
2 R& ]3 G# h9 l5 H6 }6 x - // 我们的数据对象
4 p' _( P$ X- \6 }( d1 i; O+ W - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
) @ z6 n3 c e! O# o - var vm = new Vue({
+ c: u$ Z) m. y! V' s - el: '#vue_det',6 L3 q4 ^9 c, T
- data: data
0 l4 E, M4 H' P. a - })
' E+ A6 y$ e) @9 M/ H, @( J9 e: R - // 它们引用相同的对象!
3 f' k6 }1 O7 e+ p" O% X - document.write(vm.a === data.a) // true5 w( V4 o% J. Z% }$ W3 T
- document.write("<br>")
3 j/ D0 ]' t8 Y# I, R0 x - // 设置属性也会影响到原始数据! X, q. ^; I& H
- vm.site = "Runoob"
" ^$ I& ^6 @+ ^9 \. `1 b' k4 X# j - document.write(data.site + "<br>") // Runoob6 p! V3 \# {6 Q- ?( m9 I9 A
- / B p1 O( J6 n
- // ……反之亦然8 T4 |8 q3 c* e& H t, Y
- data.alexa = 1234& W+ H5 u8 ~- @* g9 a+ \$ F
- document.write(vm.alexa) // 1234# o6 H# [' r* o8 q7 X
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">
+ T' f) \% P m+ C1 z - <h1>site : {{site}}</h1>8 O* Q0 b; [6 I8 r% t0 M. S" O) U8 w
- <h1>url : {{url}}</h1>
: A! k) E" b8 k7 P4 R - <h1>Alexa : {{alexa}}</h1>
+ g+ U j! E" A& o+ a - </div>
( M ^) b& s `" K6 a/ I* O; B U& g - <script type="text/javascript">
+ [- N% f5 ]$ M - // 我们的数据对象$ H: G* I0 X9 u1 w+ p
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 V1 V1 l* R& |9 }1 I
- var vm = new Vue({
3 O9 g$ b; Z# @1 F" v( v! o - el: '#vue_det',
' @) E, g" R& m# b7 |9 ? - data: data, H) o2 X; Y6 s" e2 H
- })
9 i* s+ U# c' f" y% g - ! b3 H; W5 W$ X* F" m
- document.write(vm.$data === data) // true" r" S# h8 N+ }' Z( f& W# c
- document.write("<br>") // true
# P4 ]1 K. t" r, {# R - document.write(vm.$el === document.getElementById('vue_det')) // true
% n2 N7 x2 R# Z `( x- _ - </script>
复制代码 : |1 A. S% j6 i
; t3 \7 O1 u i# @( j
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |