cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({
% \6 I5 I+ U6 q, @ Q5 m - // 选项
3 J8 T" b, ~; |; S7 r - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">
/ x' v; x4 @9 T, R1 ?5 f# U - <h1>site : {{site}}</h1>' A" v9 `! V5 j& w; {7 e2 z
- <h1>url : {{url}}</h1>
. ]0 H( i' Y1 [0 p# _. T - <h1>{{details()}}</h1>' |( c9 G! w" a# W
- </div>
# Z' V8 d# R8 X - <script type="text/javascript">
# m% M, v6 m v$ p5 T# C! ?( S/ r - var vm = new Vue({
. l/ W% b+ n ?, A - el: '#vue_det',
, p; c7 x0 D) z3 j$ H - data: {2 q! E; F7 x, Q8 D# v* Z
- site: "菜鸟教程",# s5 N5 Z, }1 m; }+ c0 h2 @* k. ]
- url: "www.runoob.com",
& @. b! ?5 }% {! _. r - alexa: "10000"
0 M+ E P& q4 V! a9 j' a' K - },7 o" w7 r1 T ^- t+ N5 N; M$ D
- methods: {
6 b, |8 d4 X% r1 E4 B# O h - details: function() {
" H( i: i5 S5 M" |% b0 E4 l - return this.site + " - 学的不仅是技术,更是梦想!";7 z7 ~8 p9 b O% i
- }
# N5 L8 g$ l) T) n6 _ - }' c `+ s; o; f% w+ [
- })
8 @# y1 W3 X' @2 r( R! P3 _" [0 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">
9 h5 l2 x: c6 t3 z - <h1>site : {{site}}</h1>
2 k( r: j8 b) M" G$ ]6 R: I# E - <h1>url : {{url}}</h1>
4 ^3 u& s/ }" p, s& x% t - <h1>{{details()}}</h1>
: o% l' ?) X; x4 H - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">" r3 b# D7 |# O; T& D4 Z
- <h1>site : {{site}}</h1>
1 G5 p+ w+ _; h' Z& @ - <h1>url : {{url}}</h1>
0 ]9 T/ J! ?& Z* F) Y - <h1>Alexa : {{alexa}}</h1>: l" `! t, ^- O! L
- </div>
: Y5 c9 }7 F/ A - <script type="text/javascript">& s: Q( m3 o. A8 a$ [! H5 J
- // 我们的数据对象
; K$ x+ B3 @; U; C5 F - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
2 v0 Y+ I7 A! L - var vm = new Vue({* \: E6 u! m' `. z2 R3 C+ I
- el: '#vue_det',5 j$ z6 O) o2 e$ c5 S
- data: data+ F) c1 e5 H2 i" Q8 ^& Q$ G
- })8 M, ]- x! {9 s0 a
- // 它们引用相同的对象!
* v5 Q6 r0 @3 K* G$ X6 v - document.write(vm.a === data.a) // true% {# D( C" U/ C- R/ d
- document.write("<br>")) D; n" ]8 a; Q9 f+ l# [3 R) t' r
- // 设置属性也会影响到原始数据; K. ?" p5 ^6 c: `8 \: r, w2 `' ]. |; a
- vm.site = "Runoob"
% U7 Y! x3 M3 y) Y0 t# v - document.write(data.site + "<br>") // Runoob
' u2 |7 m) L( k- @ - $ j3 g( e$ Q/ M" |! ]
- // ……反之亦然
) q# m# I4 X. u( m, g# m! h& T - data.alexa = 12347 |% z0 u1 ~; `
- document.write(vm.alexa) // 1234' U8 l* ]/ I, |% f& x, P+ E
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">1 _/ F% l r7 I5 x3 S# {6 O: g5 G/ S
- <h1>site : {{site}}</h1>
2 S; p3 _& S: q9 @5 k: y - <h1>url : {{url}}</h1>
8 d" o- C% S( J) J- o$ l' I - <h1>Alexa : {{alexa}}</h1>
) l; P9 |+ i4 k6 A ^" l# V - </div>
3 o: {& C* z1 Q& p1 D' G - <script type="text/javascript">) s3 V, k8 W6 |
- // 我们的数据对象
" ?" Q) J; U, k& | ?. [ - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}3 Q* ]# a& l0 d& h
- var vm = new Vue({( @/ J5 d4 n: D3 {" l; y
- el: '#vue_det',$ ~) T, c7 R6 P( |# ^2 U! r$ i( t
- data: data
0 u4 V$ h. J# A$ D& r - })! O: n7 s- }# m- V7 D/ B
-
$ t( p* |& g: y4 Y6 `( F" Z2 q. G, t - document.write(vm.$data === data) // true" [5 g5 C4 y" e4 r! k
- document.write("<br>") // true, N( u$ e- t6 d- Z' v- }
- document.write(vm.$el === document.getElementById('vue_det')) // true' C6 O8 g) q; d4 G9 @! Y
- </script>
复制代码 5 y. V& f( p1 Z0 I8 q
" L, l, F* q$ k8 j: A
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |