vue3.0 CLI - 2.1 -  component 组件入门教程


Posted in Javascript onSeptember 14, 2018

我的 github 地址 - vue3.0Study - 阶段学习成果都会建立分支。

进入 src 文件夹,这是实际都工程文件夹,其他文件夹以及文件以后在了解。

3个文件夹  assets - 各类静态资源文件夹 - 比如 图片, css 文件等。  components - 组件文件夹, 组件是 vue 等 MVC 框架等核心概念,自行了解含义。 view - 视图文件夹。

5个文件  app.vue、main.js - 主视图、配合 main.js 成为 vue 程序的主入口。router.js - 路由程序主入口。store.js - 路由状态管理系统。

registerServiceWorker.js 暂不进行了解。

介绍完工程文件夹,进入本文主要关注点 - 组件。

*.js 和 *.vue文件都可以单独成为 组件 。我不会使用单独的 *.js 文件作为组件 ( 用 *.vue 文件作为组件方便理解和管理 )。组件可以单独用 *.vue 写出来,也可以分开同时用 *.vue 和 *.js 来完成一个或者多个组件。

当前工程文件夹中存在 4 个组件:app.vue + main.js、helloworld.vue、views/home.vue、views/about.vue。

template 标签:4 个组件都有,这是渲染模版,也是组件的核心,细心的读者可以发现这4个 template 中都包含有一个顶层都 div 元素。script 标签:helloworld.vue 和 views/home.vue 中有,也可以用单独的 js 文件描述,比如 main.js。style 标签:app.vue 和 helloworld.vue 中有,提供【组件作用域】的 css 样式,防止团队协同开发导致的 css 样式名冲突。

template - script - 问答

1、为什么要使用 *.vue 和 *.js 分开的方式写组件?

答:这个初始化的项目,自然没有这个必要。在大型的项目中,有些组件的 模板 template 和 功能定义 script 都是相当规模的代码,分开管理有利于项目架构的整理。

2、下面是否会介绍 style 的用法?

答:显然不会,这方面内容简单,读者自行了解。

3、app.vue 与其他组件中 script 的区别?

答:这个区别很大!app.vue 中的 script 是定义各类功能的集中入口,当前可以看到的有 路由、路由状态管理系统、渲染 和 配置定义,因此 app 组件的 script 一般都是分开定义。由于 app.vue 是主程序入口,它并没有 data、prop 等等常规组件都有的东西。关于 app.vue 和 main.js,在以后的学习中会渐渐深入。

学习改造 helloworld.vue

export default { name: 'HelloWorld', props: { msg: String } },这是 script 代码。export default <object>,其实这个很简单,导出一个 object 实例,这个 obj 有 name、props 属性。name - 组件名称;props - 组件属性 ( 这些属性的值只能由父组件提供 )。组件属性也是一个健值对的对象:健 - 属性名称,值 - 属性类型 ( 这玩意还有点内容,建议去官方说明中看相关介绍 )。

helloworld.vue 组件在 views/home.vue 中被使用,props => msg 也是在 views/home.vue 中传递过来 ( 下文中绿字部分 ):

import HelloWorld from '@/components/HelloWorld.vue' 
 <HelloWorld msg="Welcome to Your Vue.js App"/>

仅有这些还不能使用 helloworld.vue 组件,还需要以下代码中绿色的部分:

export default { name: 'home', components: { HelloWorld } }。

现在来用 helloworld.vue 试验学习组件的相关内容。

v-for 的使用

data: function() {
return {
linkPrefix: 'https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-',

clis: [


{ link: "babel", text: "babel" },


{ link: "pwa", text: "pwa" },


{ link: "eslint", text: "eslint" },


{ link: "unit-mocha", text: "unit-mocha" },


{ link: "e2e-nightwatch", text: "e2e-nightwatch" }

]
}

给 helloworld.vue 组件导出配置增加如上 data 属性 ( 由于组件存在,data 属性需要用 function 的方式来返回 ) 。

<ul>
<li v-for="(cli,index) in clis" :key="index">


<a :href= linkPrefix + cli.link target="_blank" rel="noopener">{{cli.text}}</a>

</li>
</ul>

修改之后的版本已经上传我的 github 。

总结

以上所述是小编给大家介绍的vue3.0 CLI - 2.1 -  component 组件入门教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js之WEB开发调试利器:Firebug 下载
Jan 13 Javascript
50个比较实用jQuery代码段
Sep 18 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
May 11 Javascript
js实现编辑div节点名称的方法
Dec 17 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
AngularJS中ng-class用法实例分析
Jul 06 Javascript
实例解析ES6 Proxy使用场景介绍
Jan 08 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
微信小程序登录session的使用
Mar 17 Javascript
如何用JS实现简单的数据监听
May 06 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 #Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 #Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
Sep 14 #Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
Sep 14 #Javascript
在vue项目中使用md5加密的方法
Sep 14 #Javascript
在vue项目中引用Iview的方法
Sep 14 #Javascript
详解webpack-dev-server使用方法
Sep 14 #Javascript
You might like
ThinkPHP php 框架学习笔记
2009/10/30 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
Python中装饰器学习总结
2018/02/10 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
详解Python 最短匹配模式
2020/07/29 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
电大物流学生的自我评价
2013/10/25 职场文书
物流创业计划书
2014/02/01 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js