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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    2 x" J3 `- u. X. G1 w5 n9 e
  2.   // 选项, f9 q4 F! b& C$ V) H
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    4 D# w8 {1 I/ F5 H4 n
  2.     <h1>site : {{site}}</h1>. f6 @0 j- s9 w9 i( S# D2 K6 L
  3.     <h1>url : {{url}}</h1>5 \% |6 ]0 J5 g
  4.     <h1>{{details()}}</h1>
    3 ^" Y0 t4 {9 H* U- N, c' i
  5. </div>8 |" o8 y9 n* O; R3 N
  6. <script type="text/javascript">+ ^$ I; ^# M6 ~7 T8 n
  7.     var vm = new Vue({
    5 c' ?  H* P& X7 M
  8.         el: '#vue_det',! T/ l9 g& G: M3 R' m: g' C
  9.         data: {2 n. }7 i9 F% h$ k
  10.             site: "菜鸟教程",
    7 w# I: o$ m# K& C
  11.             url: "www.runoob.com",
    ! o/ P; }' u7 n  N9 l( J
  12.             alexa: "10000"+ f, _- w! Y% f; Y
  13.         },
    5 v! R" @; u+ B
  14.         methods: {
    , Z- h8 c4 D( d7 x! _; f. |
  15.             details: function() {4 Y$ P0 x9 V; e6 U) h0 g) E
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";3 U2 T% U, l& a% n) U) r- ]
  17.             }  b- r; X4 p) m  X" Q
  18.         }) I' o. l) x$ O3 X5 T) S7 p
  19.     })
    8 L% u9 d9 _: F; h
  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+ V# u( |6 ]2 f4 e
  2.     <h1>site : {{site}}</h1>* W/ e% w) [/ {9 }3 i
  3.     <h1>url : {{url}}</h1>' y9 D7 T" A4 Z, K
  4.     <h1>{{details()}}</h1>
    & ?( y: a6 {. j; ~0 ~4 T
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">) D  V0 M3 w, I+ U5 K
  2.     <h1>site : {{site}}</h1>
    - K6 E2 _' @) e& }  l/ f
  3.     <h1>url : {{url}}</h1>9 D  B" ]8 Z/ g0 y- x4 a, w
  4.     <h1>Alexa : {{alexa}}</h1># W( p8 G/ j1 g: s
  5. </div>
    6 R( O5 ^2 z0 b* n# W! L# ?
  6. <script type="text/javascript">* @8 a- s. E7 K" Y. x
  7. // 我们的数据对象
    * w* f0 H+ O: b7 _- `* _
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    ( m1 B# w% u6 Z
  9. var vm = new Vue({
    / V" ~4 a$ W( x3 I4 i' q
  10.     el: '#vue_det'," x8 g( J9 P3 V5 d$ Z) F8 S
  11.     data: data" g: x: b$ Q  n: L/ ^& B) Z3 x
  12. })( X  G! y2 L! K/ F" m5 k/ ]
  13. // 它们引用相同的对象!
    % d- _8 K* M; }+ F2 E8 ]
  14. document.write(vm.a === data.a) // true
    & k8 e/ X* \- X3 f  |# R. x
  15. document.write("<br>")
    ) @0 V( M# g0 j# v  W3 L  x
  16. // 设置属性也会影响到原始数据5 I* y8 T5 d6 W$ R1 ~  J" V1 j
  17. vm.site = "Runoob"
    1 m8 S; t# l/ v5 Y; G: d
  18. document.write(data.site + "<br>") // Runoob
    , S  O( r4 a$ X' O8 L8 q2 T% v
  19. $ |; G6 Y- @5 K' F
  20. // ……反之亦然
    0 m! R0 G5 B0 m6 o& [
  21. data.alexa = 1234" R! i& s* ?; G) s9 A
  22. document.write(vm.alexa) // 1234
    $ {+ h! _% w2 M0 u
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    % r! f) g  `$ P  j! ~
  2.     <h1>site : {{site}}</h1>9 S2 @5 [& u0 p
  3.     <h1>url : {{url}}</h1>
    & L7 ?  y7 q  f3 n7 c
  4.     <h1>Alexa : {{alexa}}</h1>
    ! ]+ t; X/ |9 K- m3 E  \' `
  5. </div>
    , ~! o7 O; t' s& R& s! _
  6. <script type="text/javascript">6 j9 i* s7 R8 Q' P- a
  7. // 我们的数据对象
    8 j, _8 T$ \5 ]7 U, m2 Z% F  s
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}  R+ R5 O% ^( D+ N3 N$ d  ^. D
  9. var vm = new Vue({
    8 ^( R7 _6 t  C9 n9 N5 b1 G
  10.     el: '#vue_det',4 O0 K9 a1 O" b, \+ ]3 i2 I
  11.     data: data
    ) s+ \: i) e2 K  J
  12. })3 K9 T7 t+ l8 v+ L  V

  13. ' [# C) H3 P: a& T; @* Z1 ]
  14. document.write(vm.$data === data) // true
    2 g+ R2 ]2 D3 F  z# ?
  15. document.write("<br>") // true8 O3 S2 e2 D/ q% `! b5 f. a( ^2 r
  16. document.write(vm.$el === document.getElementById('vue_det')) // true% u$ `8 [- S. Y. t
  17. </script>
复制代码

+ }, Q5 Q5 \8 ?5 K* T0 m) a$ Y0 ?1 K7 x& g, S+ U2 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 19:58 , Processed in 0.065939 second(s), 20 queries .

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