cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({
$ V' ?5 \7 Q9 ~ - // 选项
. L3 u1 Y" v# s" G - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">
5 a/ C5 h3 X7 b+ v- @ - <h1>site : {{site}}</h1>7 V1 }0 K$ k/ C7 i8 E
- <h1>url : {{url}}</h1>
. B- B# F( Z5 T - <h1>{{details()}}</h1>
5 m9 T4 I+ r+ ?+ [+ `9 h - </div>1 \- O8 o/ A6 ]6 K. \/ ~3 V
- <script type="text/javascript">8 B+ \9 v( n4 }! S
- var vm = new Vue({! j* ^+ g% v* R/ y% G. t2 L
- el: '#vue_det',& }6 L( y" R$ g" _# n
- data: {' M# n. z- Y9 l/ B; k
- site: "菜鸟教程",
: B% d } \. R6 _; {: t2 {' p - url: "www.runoob.com",$ {" Q$ H+ R( f# p$ H
- alexa: "10000"
: p8 H: `9 \; I6 K) C# I - },
3 ]3 C* _" T. v3 p - methods: {
, @$ [ b4 g, j" X - details: function() {/ G2 y! z# ?% O' Z, |
- return this.site + " - 学的不仅是技术,更是梦想!";% H/ q- W* @. }# L5 V6 R
- }
; ^" Q) |6 E3 r - }
7 N/ h8 Z Y X* n4 s7 x - })+ a! _# F a3 j$ d$ z6 M, v
- </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">* C( R& I2 e P7 g, G" D: f
- <h1>site : {{site}}</h1>
: V0 @6 M& ~, D2 j1 i9 p4 l" U" p0 i( | - <h1>url : {{url}}</h1>7 p8 Q0 |: }6 Y3 y6 C
- <h1>{{details()}}</h1>
. l$ X3 q. N. u4 N* G4 F1 D( c - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">7 l+ v1 l" p. R7 c
- <h1>site : {{site}}</h1>
% Y! @2 J" w. c2 E - <h1>url : {{url}}</h1>: p4 x5 _6 Y) _3 V6 s$ o
- <h1>Alexa : {{alexa}}</h1>
/ e* P; A( g/ y9 i; U - </div>2 j$ I( z' K: l* h; I
- <script type="text/javascript">
, v% z; w: c- @7 f1 J - // 我们的数据对象( X* U' J2 M, F1 i
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
9 C v4 Z) P% [' k1 [# j K, r - var vm = new Vue({( w; V5 C0 y: U, B3 s# e. N8 w
- el: '#vue_det',! c1 m8 O: b: [
- data: data' L8 K) X+ `2 f$ `. u5 ]/ d
- })
( U! \2 X* Z: ]0 i* A- ~ - // 它们引用相同的对象!
: `3 E, ~; {/ C( e: s - document.write(vm.a === data.a) // true
) g% q5 w3 u4 Y, _* B7 Z - document.write("<br>"). ^$ I5 I' M6 k3 Y9 x" [4 @9 y
- // 设置属性也会影响到原始数据+ M1 O+ D: P' k7 o) o
- vm.site = "Runoob"+ {4 V% ]/ \% K8 t( y
- document.write(data.site + "<br>") // Runoob
0 _- j7 n1 K: n9 e+ P7 @ - 0 Z6 a9 F" b) }, E
- // ……反之亦然
5 e: i8 H) M @7 n" a. g/ _ - data.alexa = 1234
: G( M% L3 ~* | s. k0 b - document.write(vm.alexa) // 1234
8 J" Z& \: @8 T! I* ] - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">' x# X- B7 v- D/ m% G
- <h1>site : {{site}}</h1>
' ^# A6 j. y0 I1 z; Q - <h1>url : {{url}}</h1>
1 [9 `1 N( A2 y, e/ P6 Y - <h1>Alexa : {{alexa}}</h1>
5 e) o- S$ ~+ q( P6 _% M - </div>
/ a+ r) J1 ?9 [" y3 H - <script type="text/javascript">
0 Y) t! m: p3 Z - // 我们的数据对象/ O+ J% ^4 u- @/ D* Y
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
% p! F9 S& [5 ] - var vm = new Vue({; Z7 X _: v, g X& k3 x, S
- el: '#vue_det',
, D* }- G0 b9 `- g9 e' k1 K - data: data
; d( Q; C7 ^( D - })5 b. q$ |5 r' E+ Z1 H
-
9 m) \4 k6 Q; l: X6 X' O7 }) w - document.write(vm.$data === data) // true. s( @' V8 X9 v7 }" Z" v3 ^( {
- document.write("<br>") // true
: d, I+ A! n; K- l - document.write(vm.$el === document.getElementById('vue_det')) // true
( C) Z7 q1 N2 m - </script>
复制代码
3 T" B: m8 `" {
7 B$ T/ a4 f$ w8 M
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |