vue项目构建及api 2019.5.15

本文详细介绍了Vue组件的局部注册与全局注册方法,包括使用ES2015模块和解决Vue runtime模式的导入问题。同时,文章探讨了`scoped`属性在样式私有化中的作用。此外,还深入讨论了props的使用,如父传子、子传父的单向数据流,props验证,特性替换与合并,并提到了禁止特性继承的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. vue组件注册的几种方法

(1)局部注册

1)

2)通过 Babel 和 webpack 使用 ES2015 模块

App.vue文件

(2)全局注册

main.js文件

全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生

这里刚开始运行项目时会报错:

Reason:

因为vue模板的package.json的main字段默认为runtime模式,指向了"dist/vue.runtime.common.js"位置

代码import Vue from "vue"被解析为import Vue from "vue/dist/vue.js";

改变runtime模式指定的位置为解析的地址,即将默认指定的地址改为解析出来的地址,即见方法1,2

solved:

2. scoped属性

<!-- Add "scoped" attribute to limit CSS to this component only -->

<!-- 即实现样式私有化(模块化),不对全局造成污染, -->

<!-- 只对该组件有用 -->

eg: 组件HelloWorld和Vuemodule;

两个组件中都有a标签;

组件HelloWorld的style设置scoped属性,则a标签 的样式只对该组件有用,不会影响Vuemodule组件;

组件HelloWorld

Vuemodule组件

显示

 

3. props

(1)props down 父传子,events up 子传父

// prop: 所有的prop都使得其父子prop之间形成了一个单向下行绑定,

// 即父级prop的更新会向下流动到子组件中,反之则不行

// 父组件通过 props 向下传递数据给子组件,子组件通过 events 给父组件发送消息

eg:子组件HelloWorld, 父组件App.vue

子组件HelloWorld

父组件App.vue

2)props驗證

eg: 驗證title值

(3)替换、合并已有的特性

<!-- 绝大多数特性,父组件提供的值会替换掉组件内部设置好的值 -->

<!-- eg: type值 -->

<!-- 但是 class和style特性会合并两个值 -->

eg: 子組件attr

設置class a

父組件App

設置class b

最後class a, b將會合併

(4)禁用特性继承 (這裡有問題。沒有實現)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值