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 相关文章推荐
Ajax一统天下之Dojo整合篇
Mar 24 Javascript
js获取当前日期代码适用于网页头部
Jun 27 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
js实现数组冒泡排序、快速排序原理
Mar 08 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
Apr 15 Javascript
javascript数字验证的实例代码(推荐)
Aug 20 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
JavaScript中发出HTTP请求最常用的方法
Jul 12 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
Aug 10 Javascript
js判断两个数组相等的5种方法
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
牡丹941资料
2021/03/01 无线电
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
关于全局变量和局部变量的那些事
2013/01/11 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
Python简单遍历字典及删除元素的方法
2016/09/18 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
联强国际笔试题面试题
2013/07/10 面试题
党员个人批评与自我批评
2014/10/14 职场文书
全国助残日活动总结
2015/05/11 职场文书
军训新闻稿范文
2015/07/17 职场文书
初中物理教学反思
2016/02/19 职场文书
辞职申请书范本
2019/05/20 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android