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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    , Q$ F/ o  O& w7 M7 u8 r$ k7 Q. b7 x
  2.   // 选项
    ! ?. f9 L  D7 m$ i  J% `" D
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">' X4 P8 k; x( K/ z; V0 K
  2.     <h1>site : {{site}}</h1>4 p8 P- d/ p) A# w* O% _) \4 a
  3.     <h1>url : {{url}}</h1>& V$ x0 n/ h- S. h
  4.     <h1>{{details()}}</h1>. ]( S7 p1 i6 Y
  5. </div>3 D8 I% P8 j# e  K, [+ e
  6. <script type="text/javascript">" @. R9 z; g7 q/ V8 c7 o
  7.     var vm = new Vue({+ H  k- T9 [! ]5 V9 _
  8.         el: '#vue_det',
    6 g9 m& t0 O: A# B9 Q
  9.         data: {! F) G$ i$ R9 i7 S
  10.             site: "菜鸟教程",# l( I1 d1 Z" [$ v8 i, i
  11.             url: "www.runoob.com",
    - i) O8 I% Q. `- C5 l% u
  12.             alexa: "10000"
    * ]0 k$ O6 ^* `$ D9 O& {9 [3 F
  13.         },; n2 s* F" [% m0 h. m
  14.         methods: {
    - i, M7 {0 h/ I& @5 e
  15.             details: function() {/ a& T/ @- G2 o1 S' Z/ o, p
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    0 T& f, v# u' x. O& m
  17.             }
    $ A( F5 A$ n7 d1 g7 Z
  18.         }# l8 h0 d* b' ?$ F5 W' I
  19.     })& Q7 b, N5 w! l$ Z& G2 ?4 F
  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">
    $ B$ a0 w* ^5 |) o# p6 Q
  2.     <h1>site : {{site}}</h1>: f0 J& s* c; }1 T$ Z" ^6 @/ E
  3.     <h1>url : {{url}}</h1>
    - R( A. J' W0 b4 ?1 X( ~- N, w
  4.     <h1>{{details()}}</h1>
    5 P, ]6 `$ P8 ~/ }
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    $ g3 O* j( k7 G" U: ^4 `
  2.     <h1>site : {{site}}</h1>
    - M1 n& c# K$ t7 a: K
  3.     <h1>url : {{url}}</h1>
    5 O2 q. R' _- P  j* Z+ s' R+ Z
  4.     <h1>Alexa : {{alexa}}</h1>) W/ n1 x! m; Y/ V
  5. </div>
      A! N9 L7 c7 o; ?, q& ?
  6. <script type="text/javascript">' a: ?& P' ~. f/ q& s  c$ B
  7. // 我们的数据对象
    . |; i: t, u2 P% z1 v  w+ {
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}9 G5 P. l( k6 S* l
  9. var vm = new Vue({
    3 [+ R3 U$ Q  e. V
  10.     el: '#vue_det',  h  v: V. O; Y! M' f
  11.     data: data
    3 Y4 Z: s$ `' \
  12. })
    % E" c: ]0 V8 t( k
  13. // 它们引用相同的对象!
    ! ?# @, n. M. B4 O
  14. document.write(vm.a === data.a) // true- Y* V0 O4 k' G3 r) C
  15. document.write("<br>")
    ) b, u' e+ o1 g* {$ d' ?$ J
  16. // 设置属性也会影响到原始数据% A& T4 f6 c+ R; v, D- J
  17. vm.site = "Runoob"# @) m$ m& G/ R, _
  18. document.write(data.site + "<br>") // Runoob* x' \5 n+ b3 o6 I) A0 ?

  19. 1 f# j$ ~6 x# n# ]5 z* q
  20. // ……反之亦然% i7 i& N% U3 F5 ^
  21. data.alexa = 12348 w: P3 x8 Z7 N( r6 G3 \
  22. document.write(vm.alexa) // 1234" Y" K* R" @- N) t
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    8 v' o) S8 P& \! p) |) y: W
  2.     <h1>site : {{site}}</h1>
    ' a0 w+ L9 |6 u- @/ f
  3.     <h1>url : {{url}}</h1>  m: Z, \3 p5 ], d+ e" E% \
  4.     <h1>Alexa : {{alexa}}</h1>* [4 D1 o3 q5 M. n4 v- A
  5. </div>& R, f2 h0 Z7 B# I+ i$ d
  6. <script type="text/javascript">1 v( x9 ^/ U" V% f# Q# X
  7. // 我们的数据对象
    $ P' t9 [% w( F6 a: i8 g( i# H
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}. w2 y: k( j9 s/ R& \
  9. var vm = new Vue({
    0 [8 u  h4 x+ b
  10.     el: '#vue_det',
    0 V0 N* T' y1 \9 F- l! \
  11.     data: data
    ' V- w* @  k3 c- n
  12. })/ A4 l* M  \7 v, [
  13. " h$ e, B$ ~( P2 N0 t7 U' D
  14. document.write(vm.$data === data) // true1 I# h0 @0 k5 ^: d( R6 [
  15. document.write("<br>") // true3 G8 L6 n( ^; r7 V
  16. document.write(vm.$el === document.getElementById('vue_det')) // true; L8 R, o1 d! A! c9 y& n: z
  17. </script>
复制代码
8 Z4 N& b6 u& {& _/ G0 ^$ @
8 L0 `; i$ l- ]# v$ N8 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:11 , Processed in 0.133793 second(s), 22 queries .

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