您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14588|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({- Y4 U1 b0 \, y% x( F- |& e
  2.   // 选项
    # j2 ]6 r) ?, O  ^0 e
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    . U  \/ o/ g4 `6 W/ c
  2.     <h1>site : {{site}}</h1>+ K" N$ y8 |0 q) F$ O, Y: C( h
  3.     <h1>url : {{url}}</h1>4 ~% J# P' d0 h! u* D
  4.     <h1>{{details()}}</h1>
    1 U/ v' I1 h; R3 w2 H  {
  5. </div>
    * ]2 {7 `2 n/ B3 W) A' i
  6. <script type="text/javascript">
    . B! k* F' T- z2 r4 j8 b
  7.     var vm = new Vue({
    ! G% o5 ~# S# j) A  O
  8.         el: '#vue_det',
    % ~3 i7 @0 H- F& ]' L
  9.         data: {
    2 D6 I8 z4 o* ^
  10.             site: "菜鸟教程",
    4 U2 A% T0 t) Z1 k
  11.             url: "www.runoob.com",/ _. g1 S- G$ W  \& o5 a$ I
  12.             alexa: "10000"
    + H$ q; {, h* u6 T. C; f/ K
  13.         },5 @* ~+ o' I! }' A8 U* ?! n/ _
  14.         methods: {
    2 ?' N" H+ o* X* X- }/ l" y$ T- L
  15.             details: function() {* z5 P3 x2 m* L1 \9 V  x
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    9 W$ E- b; A0 X) m! h
  17.             }# o  r5 D5 j* f! _0 B
  18.         }3 |& F& {6 J: b6 s7 `5 w
  19.     })% b8 l  b6 B8 [: ^1 x, I4 q
  20. </script>
复制代码
可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中:
  1. <div id = "vue_det"></div>
复制代码
这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。
接下来我们看看如何定义数据对象。
data 用于定义属性,实例中有三个属性分别为:site、url、alexa。
methods 用于定义的函数,可以通过 return 来返回函数值。
{{ }} 用于输出对象属性和函数返回值。
  1. <div id="vue_det">" r# p8 W/ a- ?, I% L9 ]
  2.     <h1>site : {{site}}</h1>
    - l* ?: x5 l. g& L& Y- R
  3.     <h1>url : {{url}}</h1>% @# ]3 d& q9 s  x- l
  4.     <h1>{{details()}}</h1>
    1 |# k1 f) L$ R+ _- w9 v3 E
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    8 g1 C  @8 q2 c! m
  2.     <h1>site : {{site}}</h1>
    * p! X0 O3 Q! o2 T5 E# Z
  3.     <h1>url : {{url}}</h1>
    1 F8 o8 ~' ^/ C1 P# k  h/ S
  4.     <h1>Alexa : {{alexa}}</h1>1 v! s8 `3 R( Z; J* V' o5 f! X
  5. </div>( a. ]) Z* o! [! S# z6 [. h
  6. <script type="text/javascript">8 k; k6 e) ]5 l' a: @! @
  7. // 我们的数据对象
    9 L9 N2 J, v& C" S8 u
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    : B- J% @7 h* a4 O; K
  9. var vm = new Vue({- d8 h: T( e6 ?- z
  10.     el: '#vue_det',
    % r* N4 Z4 d  ?
  11.     data: data' N$ ~" |5 S# h5 W. \
  12. }); D5 I! ~  R/ w% x3 J& \
  13. // 它们引用相同的对象!) |0 ?. i3 u' T# c0 U  P5 [% m4 L
  14. document.write(vm.a === data.a) // true. u6 k* o# J$ B, _/ e0 p, l. u
  15. document.write("<br>")
    : c1 G$ y5 g& Z& o
  16. // 设置属性也会影响到原始数据, N: w' p" Z' M2 o& q( N3 c9 [
  17. vm.site = "Runoob"
    / W/ M0 o* c. E2 w( S, E
  18. document.write(data.site + "<br>") // Runoob* j: W& f2 _8 J3 c

  19. - F0 d) O1 i' j2 J6 q2 S/ w' [/ n
  20. // ……反之亦然
    % w; _0 E1 ~1 B
  21. data.alexa = 1234
    7 Y6 s3 \7 E' L
  22. document.write(vm.alexa) // 1234' S3 [& t2 N0 ~4 O) H, m
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">0 p1 }) K% B5 C& O
  2.     <h1>site : {{site}}</h1>2 u% j0 J8 h2 M2 N3 W
  3.     <h1>url : {{url}}</h1>
    # l- O9 w2 _, G% W% ~$ i
  4.     <h1>Alexa : {{alexa}}</h1>
    6 L5 V2 P' {5 W, z- N
  5. </div>
    " Q3 W% M; Q4 ~; L7 R7 \- J
  6. <script type="text/javascript">
    ) q( n# w7 w; C
  7. // 我们的数据对象( K1 u' ~3 K5 \% _9 G$ T
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    $ c" ~1 U( k1 g- O4 ~2 o" d4 t7 z& M
  9. var vm = new Vue({; z+ A1 _5 D9 q6 ^: s
  10.     el: '#vue_det',
    : h: n$ B6 D2 C4 C
  11.     data: data
    . e, U1 u; F% z
  12. })
    3 H2 b/ c3 o& W# t6 Z9 i
  13. 0 h6 q5 s9 T( j) A  \( a, c& m
  14. document.write(vm.$data === data) // true
    ' ?5 p) _- _3 g, s% q, V0 G
  15. document.write("<br>") // true! L- ?& ^, \- h+ A
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    7 P7 s' P+ O5 X& `1 _; {/ j3 F
  17. </script>
复制代码
% M% ^$ y. h+ G

8 `, c; t- K. B0 G6 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 16:49 , Processed in 0.055668 second(s), 19 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!