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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({/ V: B& i5 B3 c9 U
  2.   // 选项
    # z) G1 g% f5 e5 F/ J# {. j' y$ J
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    * T" S! K( r& M# d
  2.     <h1>site : {{site}}</h1>
    $ o9 a* r: e. w
  3.     <h1>url : {{url}}</h1>( j( T* A! `& Y5 T( Y/ ~( w
  4.     <h1>{{details()}}</h1>" S& B5 n! l0 h" E8 n
  5. </div>
    ! V$ m) V( W2 J8 G, I( l" L
  6. <script type="text/javascript">5 A, @8 O. I# t% C; L# b( y) v& s
  7.     var vm = new Vue({5 q7 Q( b3 h* B# r  j" J! V
  8.         el: '#vue_det',
    $ y5 C3 M3 V( a. {7 W
  9.         data: {% u+ P7 _/ R2 n1 N" r" o5 i
  10.             site: "菜鸟教程",
    ) k/ ]4 S& A- S$ }
  11.             url: "www.runoob.com",
    4 Q6 i1 n+ N0 a( A# x
  12.             alexa: "10000"! }8 B/ `/ }9 A1 o1 Y7 U
  13.         }," C2 l6 d/ x) W: ~
  14.         methods: {6 a# g+ Q: R( c- y4 }
  15.             details: function() {5 \! {6 N5 U5 L2 R! p& s* F
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";& [6 c* E% }; R6 O0 U( R
  17.             }; J3 Q5 D& P( A2 Z$ v$ D1 J
  18.         }( }/ X6 X! a6 T) E  e
  19.     })
    / q; I# s. K$ \& ?" T! m( e
  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">
    " w0 u/ S! M4 ]  R4 h
  2.     <h1>site : {{site}}</h1>) G* j9 F/ B8 e4 C
  3.     <h1>url : {{url}}</h1>
    8 w% v/ O* ?* i; X8 P( A
  4.     <h1>{{details()}}</h1>7 P0 v! W% a  N7 l4 y
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">* _4 i" L9 i/ G! r! }+ ?* m. u0 u
  2.     <h1>site : {{site}}</h1>: z( V: O6 E" r/ k' L0 Z- C
  3.     <h1>url : {{url}}</h1>5 }8 l. t- O7 H/ m/ e: W
  4.     <h1>Alexa : {{alexa}}</h1>) o7 w8 V9 n9 x" n4 A1 q
  5. </div>
    - ^/ e4 V# x9 t6 I! A0 v" e
  6. <script type="text/javascript">6 p+ i3 t5 ^( I5 A! j; N
  7. // 我们的数据对象
    / w# _7 ], ^4 {* f4 A
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    + }; W, G, u$ R7 r
  9. var vm = new Vue({5 R' E; Q9 w0 R2 @
  10.     el: '#vue_det',6 X- v$ h9 j% N% g" x) z0 `% {
  11.     data: data2 g, r, P- Z8 b6 |! c
  12. })
    & {) d6 ?( n6 D+ U
  13. // 它们引用相同的对象!* _1 h/ j. N* [  T( S2 }6 x
  14. document.write(vm.a === data.a) // true+ `& f/ W4 [+ _6 [. m
  15. document.write("<br>")
    5 ^7 g/ E$ _8 i2 c5 H7 |
  16. // 设置属性也会影响到原始数据7 i! l+ p4 ~3 T: o) B/ T9 t
  17. vm.site = "Runoob"3 A! Q3 I, f: W) g
  18. document.write(data.site + "<br>") // Runoob
    ( z  t7 U/ t6 M6 k
  19. 4 @" s5 P  [% T+ z& x* Q! n4 w
  20. // ……反之亦然. o/ B  H* I8 I0 B: H8 l) G& [
  21. data.alexa = 1234
    ' d$ V; f8 q" q9 ?; c4 V
  22. document.write(vm.alexa) // 12341 f7 }' U  f0 t; Y+ r' q6 n0 E5 o
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    : Q: N& n2 }, S) a
  2.     <h1>site : {{site}}</h1>  b) k$ c' O0 z5 i
  3.     <h1>url : {{url}}</h1>- `/ `' t2 b# `  m( y4 ^
  4.     <h1>Alexa : {{alexa}}</h1>6 ~* U7 S9 V! a7 H, {7 w
  5. </div>) ]% b/ c) z* t' w$ I5 H
  6. <script type="text/javascript">8 |& R/ |0 E% k6 J3 d- W, W
  7. // 我们的数据对象
    ) |0 E2 X0 }; O
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    & W) {0 \; [0 S
  9. var vm = new Vue({
    : t- Q; v; w: J" x/ z* r1 j
  10.     el: '#vue_det',
    / c5 ?. H' e+ {" H
  11.     data: data
    7 p; b& q3 p2 J$ \! A4 t- g! N: y
  12. })
      U3 a& e: n' O! D4 N; q

  13. . Q; m6 R. `5 G# q
  14. document.write(vm.$data === data) // true5 J) ^; _* E) q8 E
  15. document.write("<br>") // true) h# ~! C8 f9 N: J. M* k
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ! N: ?6 }9 o) E- x
  17. </script>
复制代码

/ J. s, z* s! Q8 a0 O) Q; d  f* j
! N, S5 I( _8 d8 E' O/ n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:05 , Processed in 0.113703 second(s), 19 queries .

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