欢迎莅临 SUN WU GANG 的园子!!!

世上无难事,只畏有心人。有心之人,即立志之坚午也,志坚则不畏事之不成。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  470 随笔 :: 0 文章 :: 22 评论 :: 30万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

VueComponent构造函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>VueComponent</title>
  <script type="text/javascript" src="../../Js/vue.js"></script>
</head>
 
<body>
  <div id="root">
    <school></school>
  </div>
</body>
 
</html>
<script type="text/javascript">
  Vue.config.productionTip = false
  // ----------------------创建组件----------------------
  const school = Vue.extend({
    name: 'school',
    template:
      '<div>'
      + ' <h3>学校名称:{{schoolName}}</h3>'
      + ' <h3> 学校地址:{{ schoolAddress }}</h3>'
      + '</div>',
    data () {
      return {
        schoolName: '希望小学',
        schoolAddress: '西安/110号/希望小学',
      }
    },
    methods: {
      showInfo () {
        alert(this.schoolName + '/' + this.schoolAddress)
      }
    }
  })
 
  console.log('school组件类型==》' + school)
  /*   输出结果如下所示:
    function VueComponent (options) {
        this._init(options); */
 
  new Vue({
    el: '#root',
    components: {
      school
    }
 
  })
 
</script>

示例一:

注: console.log('school组件类型==》' + school)==》输出结构为构造函数——function VueComponent (options) {}

总结:VueComponent

  1. school组件本质上是一个名为VueComponet的构造函数,且不是程序员定义的,是Vue.extend生成的。
  2. 我们只需要写<school/>或<school><school/>,Vue解析时会帮助我们创建school组件的实例对象。即Vue绑我们执行的 new VueComponet(options)
  3. 特别注意:每次调用Vue.extend,返回的都是一个全新的VueComponet
  4. 关于this指向VueComponet的实例对象,以后简称vc(也可称之为--组件实例对象)、Vue的实例对象,简称vm。
    • 组件配置中:data函数、methods中的函数、watch中的函数、computed中的函数--它们的this均是:VueComponet实例对象
    • new Vue()配置中:data函数、methods中的函数、watch中的函数、computed中的函数--它们的this均是Vue实例对象

示例二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>VueComponent</title>
  <script type="text/javascript" src="../../Js/vue.js"></script>
</head>
 
<body>
  <div id="root">
    <school></school>
    <hello></hello>
  </div>
</body>
 
</html>
<script type="text/javascript">
  Vue.config.productionTip = false
  // ----------------------创建组件----------------------
  const school = Vue.extend({
    name: 'school',
    template:
      '<div>'
      + ' <h3>学校名称:{{schoolName}}</h3>'
      + ' <h3> 学校地址:{{ schoolAddress }}</h3>'
      + '</div>',
    data () {
      return {
        schoolName: '希望小学',
        schoolAddress: '西安/110号/希望小学',
      }
    },
    methods: {
      showInfo () {
        alert(this.schoolName + '/' + this.schoolAddress)
      }
    }
  })
 
  console.log('school组件类型==》' + school)
  /*   输出结果如下所示:
    function VueComponent (options) {
        this._init(options); */
 
 
  const hello = Vue.extend({
    template: '<h3>{{msg}}</h3>',
    data () {
      return {
        msg: 'msg你好啊'
      }
    }
  })
 
  console.log('hello组件类型==>' + hello)
 
  new Vue({
    el: '#root',
    components: {
      school,
      hello,
 
    }
 
  })
 
</script>

 

posted on   sunwugang  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示