博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 学习笔记 part-6 - > 组件
阅读量:7217 次
发布时间:2019-06-29

本文共 3133 字,大约阅读时间需要 10 分钟。

hot3.png

Vue.js 组件

组件(Component)是 Vue.js 最强大的功能之一。

组件可以扩展 HTML 元素,封装可重用的代码。

组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树:

105624_JulJ_2885163.png

组件的域

html

    
part-6...组件的域

全局组件和局部组件

js

// 全局componentVue.component('zjl', {    template: '',    methods:{        onClick: function(){            alert('LaLa-Land');        }    }});// 局部component,而且被提取出来了,直接写在里面也是可以的var weather_component = {    template: '',    methods:{        onClick:function () {            alert("大晴天啦!");        }    }};// 指定生存空间new Vue({    el:'#seg1'});new Vue({    el:'#seg2',    components: {        weather: weather_component    }});

 

part-7...组件的配置

    
part-7...组件的配置

组件的配置

点赞不求人的啦!

点赞不求人的啦!不共享data示例

控制点赞数量

将模版提取出来放到html里,在js 中定义时只需要引用相应的id/class

 

// 能重复点赞的自定义组件Vue.component('like', {    template: '',    // 因为每一个组件都要用,所以不能是对象,要写成方法,这样每次都是新的    // 不写成 function 还会报错.......    data: function () {        return { like_count:10 }    },    methods: {        toggle_like: function () {            this.like_count++;        }    }})var app1 = new Vue({    el:'#seg1'});// 只能点赞一次的自定义组件// 提取出来的方式/*var like_component = {    template: '',        data: function () {            return {like_count: 1,liked:true}        },        methods: {            toggle_like: function () {                if (this.liked)                    this.like_count++;                else                    this.like_count--;                this.liked = !this.liked;            }        }    };*/var app2 = new Vue({    el: '#seg2',    components: {        /*like_only: like_component,*/        like_only: {            template: '',            data: function () {                return {like_count: 1,liked:true}            },            methods: {                toggle_like: function () {                    if (this.liked)                        this.like_count++;                    else                        this.like_count--;                    this.liked = !this.liked;                }            },        },    }});var app3 = new Vue({    el: '#seg3',    components: {        like_other_way: {            template: '#like-other-way',            data: function () {                return {like_count: 1,liked:true}            },            methods: {                toggle_like: function () {                    if (this.liked)                        this.like_count++;                    else                        this.like_count--;                    this.liked = !this.liked;                }            },        },    }});

 

part-8....组件通信-父子组件通信

Prop

prop 是父组件用来传递数据的一个自定义属性。

父组件的数据需要通过 props 把数据传给子组件,子组件需要显式地用 props 选项声明 "prop":

    
part-8....组件通信-父子组件通信

 

Vue.component('alert', {    template: '',    props: ['msg'],    methods: {        on_click: function () {            alert(this.msg);        }    }    })new Vue({    el:"#seg1"})

 

未完改天写!累了

转载于:https://my.oschina.net/zjllovecode/blog/1604431

你可能感兴趣的文章
31、springboot与任务
查看>>
【转】 一个fork的面试题
查看>>
20131108
查看>>
django.http.request中HttpRequest对象的一些属性与方法
查看>>
英文对应解释
查看>>
Robotics ToolBox机械臂仿真
查看>>
linux添加环境变量
查看>>
【uva 1312】Cricket Field(算法效率--技巧枚举)
查看>>
VS2017 MVC项目,新建控制器提示未能加载文件或程序集“Dapper.Contrib解决方法
查看>>
【ora-err】ORA-03113: end-of-file on communication channel
查看>>
00.索引-综述
查看>>
strcpy
查看>>
AC3 Rematrix
查看>>
C#之Windows Form Application与attribute
查看>>
函数与指针分析实例
查看>>
爬虫:pycurl模块的使用说明
查看>>
Halcon算子翻译——try
查看>>
Win732位安装PostgreSQL9
查看>>
Ext JS4学习笔记1——环境的搭建
查看>>
.net MVC3实现不同的角色用不同的登录页面
查看>>