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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({2 u# Z6 J/ a2 }+ C7 ~8 G7 ~4 i
  2.   // 选项$ g2 T3 s- t9 Q; s1 A  |# b2 }
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">, m- A8 @% v  ?# @
  2.     <h1>site : {{site}}</h1>+ f- Q% b8 |  }4 `9 I
  3.     <h1>url : {{url}}</h1>0 H; U7 S7 w& D% x: Y9 i" o' \
  4.     <h1>{{details()}}</h1>
    $ B* u: F% i+ j
  5. </div>
    4 g7 K6 C5 E5 S% n5 ?4 Y
  6. <script type="text/javascript">8 K( L; `2 N' l+ J
  7.     var vm = new Vue({
    2 O8 J0 w& u1 A  b$ v
  8.         el: '#vue_det',9 ~, J; b2 j* K+ _7 f
  9.         data: {
    9 K% y0 l+ l# Q
  10.             site: "菜鸟教程",
    3 U0 C  D' D5 c1 W
  11.             url: "www.runoob.com",
      t! P  `. \2 u* {
  12.             alexa: "10000". a+ n; m/ U* L3 a4 u& s
  13.         },
    : d3 Z# e% L: }. s+ s3 g' t
  14.         methods: {% o: b0 ?$ s+ O7 W) y6 p
  15.             details: function() {* G8 K3 C% H( U+ M6 l- \
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";" R8 O! v4 |' a) H! N# @; b
  17.             }2 ^' |  t4 A, ?
  18.         }
    . ]( [/ ~. d& H2 E5 x, `
  19.     })9 u- E" @' I$ Q: R! k: l
  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">
    * |" Q& \0 K; b+ n2 U4 N
  2.     <h1>site : {{site}}</h1>
    - L4 i% E: _% z. ?, I3 b
  3.     <h1>url : {{url}}</h1>
    4 F7 z  E8 O# e
  4.     <h1>{{details()}}</h1>
    , A- q! c  g. W. m3 o* A" f" U
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    $ B! E, @9 n* w0 c1 o
  2.     <h1>site : {{site}}</h1>  b% A: T* s% Z
  3.     <h1>url : {{url}}</h1>
      T5 B- i9 i" ]3 K" t% i; R" }
  4.     <h1>Alexa : {{alexa}}</h1>+ C' ~& i1 c% n$ o2 m" U' |
  5. </div>( Z5 r; d% a' y7 }0 k8 i
  6. <script type="text/javascript">1 ]9 q, ^8 C& Q8 L, T) }) z& g
  7. // 我们的数据对象
    ' a. o+ }; o" E- u
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 P5 ]% _7 ~+ Z1 W% K# Y* K
  9. var vm = new Vue({
    1 ^( Q5 i) d* r0 p
  10.     el: '#vue_det',6 ?; r# W7 v$ G3 o$ A# ]8 s, L
  11.     data: data
    ) n' j) z6 p( B  j$ b
  12. })% }  U1 ?; p1 k+ E9 a6 |+ }9 C: W* Z
  13. // 它们引用相同的对象!
    6 V8 E# a9 n  y; B" m$ {. {, O
  14. document.write(vm.a === data.a) // true
    ( l, s! a1 W) i, N% r3 V9 u
  15. document.write("<br>")& P" N+ I" }' I1 R; r3 n
  16. // 设置属性也会影响到原始数据
    & v, Y& o' [  S4 _7 a3 l
  17. vm.site = "Runoob"
    : f/ Q1 |$ R# n
  18. document.write(data.site + "<br>") // Runoob
    $ P& R6 Q7 J6 I: d2 D+ U) v: P
  19. " X7 x9 U0 q3 z" l  K: m7 a
  20. // ……反之亦然% f( Q' r0 {- p8 I
  21. data.alexa = 1234
    " J7 w: H. n" d: _- x0 s
  22. document.write(vm.alexa) // 1234
    8 e# z1 ~" J. o  ?
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">( E) {  B+ u3 i& @. n) u
  2.     <h1>site : {{site}}</h1>
    " M" }8 e' S0 E+ N
  3.     <h1>url : {{url}}</h1>0 B& v+ X4 F. U. D
  4.     <h1>Alexa : {{alexa}}</h1>' ]' g. x  Q/ G+ N8 M
  5. </div>
    , D& \6 g& r8 a6 Y4 w* Z, a
  6. <script type="text/javascript">, M, i8 l# L$ U% O! P
  7. // 我们的数据对象0 W3 A5 R0 \# i" o' d
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}5 _" I" o/ q0 X3 a9 R/ \9 h
  9. var vm = new Vue({* B1 X. s4 l' c8 I
  10.     el: '#vue_det',
    " f) B9 ^+ T# X: C
  11.     data: data! m" O$ ?& G5 ]  m6 V0 }, c
  12. })+ T! a% G  _: D

  13. & o4 _3 b1 a+ i& n2 T/ Z
  14. document.write(vm.$data === data) // true
    * h, u: ]6 I0 F, \0 C  Z1 w
  15. document.write("<br>") // true. v, w" X( c1 m. |( y( {- @# `5 w
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ! O5 C1 h6 W6 j- a+ t/ {
  17. </script>
复制代码
1 B4 ?7 {: C. L3 Z0 u
* Z9 w7 f7 x, Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:52 , Processed in 0.072491 second(s), 19 queries .

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