vue学习——刚学Vue组件,吐槽一个东西

Vue组件的props是用来传值的

template:"<bbb @click='onClick()'>{{value}}</bbb>", //"<div>{{value}}</div>"

讨厌的东西就出在这行代码,一个组件的 template 调用同级别的组件 bbb 然后使用 props 传值,结果是行不通的,并且没有报错!虽然,明知道是什么问题,可是还是令我感到不舒服。



测试代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Vue组件学习demo2</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    <div id="app">
        <aaa value="233"></aaa>
        <bbb value="233"></bbb>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //aaa组件
        Vue.component("aaa",{
            template:"<bbb @click='onClick()'>{{value}}</bbb>", //"<div>{{value}}</div>"
            methods: {
                onClick:function(){
                    console.log("点击了a的onClick()")
                },
            },
            props:['value']
        })
        //bbb组件
        Vue.component("bbb",{
            template:"<h2 @click='onClick()'></h2>",
            methods: {
                onClick:function(){
                    alert("点击了b的onClick()")
                },
            },
        })
        var app =  new Vue({
            el: '#app',
        })

    </script>
</body>
</html>

原文地址:https://www.cnblogs.com/famine/p/9893173.html

时间: 2024-10-05 04:27:40

vue学习——刚学Vue组件,吐槽一个东西的相关文章

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递

vue学习笔记の实现select组件

通过腾讯训练营这几天的学习,初步实现了自定义的选择下拉框组件,其中,可以把下拉选项抽离出来作为子组件,整个组件为父组件,其主要由<div>.<input>.<custom-select>.<ul>.<li>等标签构成基本的选择组件页面结构.主要的功能项:输入框及button按钮,构成初次展现的页面,通过点击输入框按钮,下拉列表选择项出现,当点击选择项中的某一项内容时,输入框中会出现相应的内容,再点击输入框,下拉选择项列表隐藏.同时,通过父组件与子

## vue学习笔记--简单父子组件--

## vue学习笔记 ### 组件之间的通讯1. 父组件到子组件```js //father <div> <son msg="父组件的信息写在这"></son> <son title="title"></son> <!--:title--> </div> <script> export default { data(){ return { title: '当传递一个变量过

Vue学习~2:Vue实例

Vue 实例的创建 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的 当创建一个 Vue 实例时,你可以传入一个选项对象,指定这个 Vue 实例所管理的元素. 一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的.可复用的组件树组成 数据与方法 当一个 Vue 实例被创建时,它将 data 对象中的所有的属性加入到 Vue 的响应式系统中. 当这些属性的值发生改变时,视图将会产生"响应",即匹配更新为新的值. // 我们的数据

vue学习笔记初识vue——使用HTML模板

在创建Vue实例时,如果声明了el配置项,那么你也可以省略template 选项.这时候,Vue.js将提取锚点元素的HTML内容,做为模板. 我们可以使用单一的el配置项来创建Vue实例: var vm = new Vue({el:'#app'}); 在Vue.js中,这种模板被称为HTML模板,而使用template配置项 书写的模板,被称为字符串模板. 工作原理 当Vue.js发现你提供的选项中没有template属性时,将提取el属性所 指定的DOM节点的outerHTML内容作为模板内

vue学习--自定义全局vue组件

文档目录: |--components |-loading(组件文件夹) |-loading.vue (loading组件核心) |-index.js //配置导出组件,并且install 主要配置到处文件index.js 代码 import LoadingComponent from './loading.vue'  //引用组件文件 //定义并注册组件 const Loading = {    install: function(Vue) {        Vue.component('Lo

vue学习起步,vue环境安装

vue安装的前提是安装了nodejs 安装淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 安装webpack cnpm install webpack -g 安装vue脚手架 npm install vue-cli -g cnpm和npm安装vue-cli有报错 在硬盘上找一个文件夹放工程用的,在终端中进入该目录 Mac cd 目录路径 根据模板创建项目 vue init webpack-simple 工程名