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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    5 Q9 d4 V: O( Z$ ?2 [
  2.   // 选项) u5 n  v+ t! R" Z. r& a
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">* Q6 \2 {6 m7 y' [* T
  2.     <h1>site : {{site}}</h1>; c/ p3 d. Y3 D9 F/ K4 o
  3.     <h1>url : {{url}}</h1>
    + }2 y8 W0 B( }% L7 T% F+ e# S3 c
  4.     <h1>{{details()}}</h1>3 c, b2 m9 {5 z
  5. </div>4 p2 G; u0 ?' g. q
  6. <script type="text/javascript">
    0 ^; O+ _% ^( ^# j
  7.     var vm = new Vue({7 |+ ?; H2 `% `- s6 g; s" g2 |
  8.         el: '#vue_det',' l  v3 p% ?7 k9 C
  9.         data: {
    3 Y; ]2 X; S7 W1 B. f
  10.             site: "菜鸟教程",
    # Y6 T4 r+ m! h& L. ?) J5 q
  11.             url: "www.runoob.com",
    ! B! ?2 F  J' Z+ ]% E' N
  12.             alexa: "10000": b; Z1 V6 H+ s  W
  13.         },2 `. ]" ]! A+ o( o' q# T
  14.         methods: {( }5 V$ R2 |! y$ l2 t  g( l
  15.             details: function() {
    " D: X) _" h1 C& Y* M1 ?
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    1 p) @- p* z0 P+ R1 w
  17.             }; R1 T% b, Y/ p; p
  18.         }# N1 [+ t/ G7 P
  19.     })
    : A  C& p2 q1 T+ S
  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">
    9 r) I7 f# G" {" q2 k/ c
  2.     <h1>site : {{site}}</h1>
    ! ^0 v4 n; E  I+ ~
  3.     <h1>url : {{url}}</h1>' o" N3 t1 A; P* a! A; J
  4.     <h1>{{details()}}</h1>
    4 E! l0 t( C" S0 B+ _
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    : g2 J( i- ^; g
  2.     <h1>site : {{site}}</h1>6 l$ a, v* z; x6 K/ T) ]3 o
  3.     <h1>url : {{url}}</h1>$ L7 ^% J% R0 Q
  4.     <h1>Alexa : {{alexa}}</h1>
    0 e) C( p2 g5 V" n
  5. </div>5 F) E5 V% N3 u8 l
  6. <script type="text/javascript">
    ' M9 K; t1 X/ l' n
  7. // 我们的数据对象
    : O/ U' {3 B' W
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    4 Z/ g* H5 n# l+ r. r5 P7 s
  9. var vm = new Vue({
    " A1 F5 D( p& \2 e. \+ M- q
  10.     el: '#vue_det',
    ( d* K2 x4 S/ a( j% q
  11.     data: data
    + m3 N. z8 ^3 F) z0 ?  C
  12. })4 V8 H7 b  T3 D/ N% |3 F' m
  13. // 它们引用相同的对象!
    0 X& g4 c  k- D& ^, @
  14. document.write(vm.a === data.a) // true! p. J; u  U+ f/ Q! K5 Z
  15. document.write("<br>")4 n: Z3 v& j4 u. B" @/ }+ E
  16. // 设置属性也会影响到原始数据
    ) U1 p) G0 f! m8 B
  17. vm.site = "Runoob"" |+ d% @4 t% G1 d4 _* t( f9 ]
  18. document.write(data.site + "<br>") // Runoob! Q% x- A+ Z7 i0 c% l
  19. 8 E4 l( j+ O4 F0 E7 [- p
  20. // ……反之亦然1 Z1 [; _# I5 \& N" G. R7 p2 f
  21. data.alexa = 1234
    ' a% T6 t) Y3 Q( y
  22. document.write(vm.alexa) // 1234
    $ Y9 d( ]) L7 ~, M0 E
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">" G% a* H, j0 t' D
  2.     <h1>site : {{site}}</h1>
    % @# N- \- ?7 W8 D% u$ K  R
  3.     <h1>url : {{url}}</h1>
    / _6 Q1 w9 W! v+ g" n" t
  4.     <h1>Alexa : {{alexa}}</h1>0 W7 W( l' k+ K' V9 @& _
  5. </div>
    * g6 h8 G: F7 ^: ?# {# t! y
  6. <script type="text/javascript">
    & v9 R/ E- @; x5 c, L. U4 ?
  7. // 我们的数据对象
    ! d3 P1 @1 b4 e
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    ( ^  R* P0 ^. v! v/ s
  9. var vm = new Vue({
    7 j& ^  Y: J- G/ _
  10.     el: '#vue_det',
    " ?( l0 J/ g4 H  R, r
  11.     data: data
    . I9 g7 A5 }4 M( d$ g6 w
  12. })5 \" B. B6 \- H- F2 k5 N: w, l4 ~
  13. - B" a2 W7 v4 K% h/ K8 a4 ^, b$ {7 P
  14. document.write(vm.$data === data) // true$ L. r# N) y) S" `! S8 P
  15. document.write("<br>") // true
    ; L: Y2 `1 j% [# W3 }
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    # A( i* z  C6 e4 S% h
  17. </script>
复制代码

6 B' i( s& e- ]* K' E0 S7 F
# E) r; {3 U9 z% t5 _; L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 04:15 , Processed in 0.076006 second(s), 19 queries .

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