如颖随行|「Vue 入门系列」第一期,新手快速入门指南,初识 Vue( 五 )
- 可以看到 , 一个组件将 HTML、CSS 和 JavaScript 放在一起了 , 我们以前写前端代码时注重代码分离 , 但 Vue 的代码组织方式却带来了一种优势 , 代码的可维护性提高了 。
现在 , 以 HelloWorld.vue 为例 , 在中的模板 , 必须只有一个根节点 。
组件的逻辑放在 App.vue 的 就像上面代码这样 , 在 HelloWorld.vue 中 , 利用 props 选项 , 接收从父组件传过来的 msg 数据 , 数据类型为 String, 此时 msg 就变成 HelloWorld.vue 组件自己的属性了 , msg 就可以在 HelloWorld.vue 中的中渲染了 。 当然 , 子组件也可以接收多个来自父组件的 props。
App.vue 向子组件传递的数据是写死的 , 其实还可以将一个动态的、写在 data 中的数据传给子组件 。
试一试
给 App.vue 组件增加 data 选项 , 同时 , 修改传递方式 。 HelloWorld.vue 中的代码保持不变 。
export default {name: 'App',data () {return {message: 'Hello, VueJS!'}},components: {HelloWorld}}
现在 , 我们遇到点新东西 , v-bind 指令 , 它可以动态绑定一个属性 , 比如 data 选项中的 message 属性 。
v-bind 指令一个简写方式是用一个冒号 ":" 代替 v-bind 本身 。
v-bind 指令结果
注意 , v-bind 传递的 props 是一个 JavaScript 表达式 , 而不是一个静态的字符串 。
上面的代码看似传的是字符串 , 但它们都是 JavaScript 表达式 。 如果确定要传递一个静态字符串 , 请加上单引号 " ' "。
还有一点需要注意 , 在给 App.vue 提供一个 message 属性时 , 并不是向下面这样提供一个对象形式的 data 选项 。
data: {message: 'Hello, VueJS!'}
取而代之的是一个 data 函数 , 它返回了组件自身的独立属性 。
data () {return {message: 'Hello, VueJS!'}}
这是因为 , 在文章最开始的所有示例都是一个 Vue 实例 , 所以它的 data 选项可以是一个对象 , 属于这个 Vue 实例自身的属性对象 。 但组件就不同了 , 一个组件也是一个Vue 实例 , 所以它必须要有自己独立的那份 “数据”。 否则 , 在组件复用上 , 数据就会共享同一份数据 。
组件的 data 必须是一个函数 , 这条规则记住了就可以了 。
刚才提到组件也是 Vue 实例 , 那么传入组件的选项和文章开头传入的选项大致一样 , 除了 el。
export default {name: 'HelloWorld',data () {return {}},methods: {},computed: {},components: {}}
组件命名的简单规则如果使用的是 Vue CLI 构建的项目 , 那么定义的组件文件名、组件的 name 选项、导入的组件名字以及模板中应用组件时 , 最好使用 PascalCase 形式 。
同时 , 没有内容的组件 , 应该使用组件标签自闭合 。
// 组件文件名HelloWord.vue// 组件的 name 选项export default {name: 'HelloWorld'}// 导入组件的名称尽量和组件的 name 选项一致import HelloWorld from './component/HelloWorld.vue'// 模板中应用 , PascalCase , 且没有内容 , 应该自闭合 // 没有自闭合 , 不推荐
关于 props, 在组件定义时应该始终使用 camelCase 形式 , 而在模板中应该使用 kebab-case 形式 。
// 组件定义 propsprops: {goodDetail: String}// 模板中使用// 或
- 国际丨美联邦政府再现疫情:能源部长两名随行人员感染新冠
- 中关村在线可壁挂台式两用暖风机,居浴两用温暖随行
- 如颖随行独角兽观察|中美太空竞争加剧,次世代战略新概念
- 鸿瑞爱美食|主流美媒拒绝指派记者随行,闻所未闻!特朗普“赶场”跑集会
- 邵阳学院|邵阳学院2020级新生注意!Get这篇随行“导航”,精准定位邵院!
- Mac啊嘁免费好用的Mac壁纸软件, 让你的桌面每天不重样!Irvue mac版功能介绍小编点评
- 如颖随行“刷脸支付”真的安全吗?用马云照片一付款,屏幕出现4个大字
- 如颖随行 华为鲲鹏出货量暴涨,国际市场已打开,英特尔不再是唯一选择
- 如颖随行又到了百度地图的主场?十一黄金周试试用家人的声音为你讲解景区
- 如颖随行喜大普奔,iPhone12确切发布日期十一期间公布