vue证明题四,使用组件

vue的开发方式,基本上是以组件为主的,至于为啥,我也不好去论述,网上看别人的

所谓渐进式开发,也是源自于单页面应用这一说,而注册一个域名以后,指定了首页,爬虫爬取链接都是从首页开始的

如果一个网址,必须要输入路径,不是首页,并且不能从首页中的任何一个链接进入,实际上就是一个孤岛,是无法被seo收录的。

vue项目最初肯定是由一个人写的,第一个人确定包结构,配置路由,基础页面,然后细分,一层一层的细分,

每一层的细分实际上都是组件,组件套组件

每一层组件有公用的部分,有可自定义的部分,以此实现每一个组件都相当于有一个接口规则

相当于该组件的接口可以有固定的js效果,可以有固定的style样式。

同时对于细节也提供了更改空间

在细分到一定程度以后,即可继续细分,交给多人去协作,每个人开发一部分。

说回来组件,就是后缀名为vue的文件

回到之前创建的项目中

1.删除默认内容

删掉组件包下的HelloWorld中的内容,删掉App.vue中的template的内容,尝试自己写一个简单的组件,将常用的效果都写进去试试

删干净以后的内容截图如下:

  

  App.vue文件清理

 1 <template>
 2   <div id="app">
 3         this is my first demo
 4   </div>
 5 </template>
 6
 7 <script>
 8 export default {
 9   name: ‘App‘
10 }
11 </script>
12
13 <style>
14 #app {
15   font-family: ‘Avenir‘, Helvetica, Arial, sans-serif;
16   -webkit-font-smoothing: antialiased;
17   -moz-osx-font-smoothing: grayscale;
18   text-align: center;
19   color: #2c3e50;
20   margin-top: 60px;
21 }
22 </style>

  main.js文件清理

 1 // The Vue build version to load with the `import` command
 2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 3 import Vue from ‘vue‘                              //导入vue核心包
 4 import App from ‘./App‘                            //导入app.vue,扩展名已省略
 5 import router from ‘./router‘                    //导入路由
 6
 7 Vue.config.productionTip = false
 8
 9 /* eslint-disable no-new */
10 new Vue({                                        //创建一个vue对象
11   el: ‘#app‘,                                   //vue对象作用于的对应元素(element)
12     router,                                      //路由
13   components: { App },                      //使用的组件
14   template: ‘<App/>‘                        //在该vue对象指定的元素内渲染的模板内容
15 })

  router/index.js文件清理

import Vue from ‘vue‘
import Router from ‘vue-router‘

Vue.use(Router)

export default new Router({                //导出路由
  routes: [                                //路由列表
  ]
})

  别嫌弃图小,这俩确实没啥用,就是告诉你我删干净了而已。

2.在App.vue中写入一些内容

  在创建input.vue文件,内容如下:

 1 <template>
 2     <div class=‘div-input-out‘>
 3         <input class=‘div-input‘ type=‘text‘ placeholder="请输入内容...">
 4     </div>
 5 </template>
 6
 7 <script>
 8     export default {
 9         name: ‘div-input‘,
10     }
11 </script>
12
13 <!-- Add "scoped" attribute to limit CSS to this component only -->
14 <style scoped>
15     .div-input-out {
16         margin: 10px;
17     }
18     .div-input {
19         height: 25px;
20         width: 400px;
21         border-radius: 4px;
22         padding: 5px 20px;
23         outline: none;
24     }
25 </style>

  

  修改App.vue内容,代码如下:

 1 <template>
 2     <div id="app">
 3         this is my first demo
 4         <button v-on:click="testClick()">一个测试按钮</button>
 5         <hr>
 6         <!--复用组件,标签名为组件定义中的name内容-->
 7         <lyh-input></lyh-input>
 8         <lyh-input></lyh-input>
 9     </div>
10 </template>
11
12 <script>
13     import lyhInput  from ‘./components/input‘ //导入vue组件
14     //本#app为根元素,在此注册的组件相当于全局注册了
15
16     export default {
17         name: ‘App‘,
18         methods: {                     //vue对象内执行的函数,这里被测试按钮点击绑定
19             testClick: function() {
20                 console.log(‘one test click button...‘)
21             }
22         },
23         components:{                //注册组件,注册名和导入名应当相同
24             lyhInput,
25         }
26     }
27 </script>
28 <style>
29     #app {
30         font-family: ‘Avenir‘, Helvetica, Arial, sans-serif;
31         -webkit-font-smoothing: antialiased;
32         -moz-osx-font-smoothing: grayscale;
33         color: #2c3e50;
34         margin-top: 60px;
35         text-align: center;
36     }
37 </style>

运行后结果如图,复用的组件如何对细节进行设置,如何绑定元素的指定的值,下回再说

  

  

原文地址:https://www.cnblogs.com/liuyuhangCastle/p/11074814.html

时间: 2024-11-04 03:53:17

vue证明题四,使用组件的相关文章

vue证明题三,vue项目的包结构和配置

用vue-cli创建的项目带有自动配置好的包结构,包结构都是固定的. 关于详细的解释,网上多得是,只说下最重要的内容 1.vue项目包结构和端口号配置 这里笔者下了个HBuilderX来写代码. 2.vue开发写什么? vue中编写的主要是.vue文件,如App.vue文件.大概结构如下图说明: 该vue文件的加载写在了main.js文件中,简要解析如下图: 仔细看来和当前访问的localhost:8080的页面的内容对不上,那么继续看下路由文件写了什么: 这里,路由文件指明了根路径下要加载一个

第四节:Vue表单标签和组件的基本用法,父子组件间的通信

vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="vue.js"></script> </head> <body> <div id="app"&

拥有梦想的人不做选择题,他们只做证明题

是安于现在的生活并且学着享受庸常,还是甘冒下坠的风险振翅飞往远方? 这是我最近经常看到的问题.说实话,我也觉得非常惊奇,竟然有那么多人,觉得现实在一点点埋葬自己的梦想,同时又没有足够的勇气跨出一步.每次说到看不到的山那头,海的那一端,总有无数颗小心在各个地方黯然破碎.仿佛一夜之间经过了四十个星球,却没有一个星星上能种出玫瑰花来. 人们写信来,索要帮助和建议.但是我又能做什么呢?我的人生是我的人生,我的经验是我的经验,未必对你有用.况且,我安于这样的生活,命运如此安排,而换做别人,怕是不能把这其中

vue移动端弹框组件的实例

最近做一个移动端项目,弹框写的比较麻烦,查找资料,找到了这个组件,但是说明文档比较少,自己研究了下,把我碰到的错,和详细用法分享给大家!有疑问可以打开组件看一看,这个组件是仿layer-mobile的,很多用法都一样,可以看看哦! 一.npm 安装 ? 1 2 3 4 // 当前最新版本 1.2.0 npm install vue-layer-mobile // 如新版遇到问题可回退旧版本 npm install [email protected] 二.调整配置:因为这个组件中有woff,ttf

vue按需加载组件-webpack require.ensure

使用 vue-cli构建的项目,在 默认情况下 ,执行 npm run build 会将所有的js代码打包为一个整体, 打包位置是 dist/static/js/app.[contenthash].js 类似下面的路由代码 router/index.js 路由相关信息,该路由文件引入了多个 .vue组件 import Hello from '@/components/Hello'import Province from '@/components/Province'import Segment

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 向下传递

分享一道数列证明题

两个整数数列a1,a2,…和b1,b2,….满足方程(an-an-1)(an-an-2)+(bn-bn-1)(bn-bn-2)=0,其中n=3,4,….证明存在正整数k使得ak=ak+2014. [解]设在平面直角坐标系下Pn(an,bn) 将(an-an-1)(an-an-2)+(bn-bn-1)(bn-bn-2)=0 写成 故点Pn在以Pn-1Pn-2为直径的圆上. 记dn=|PnPn+1|2=(an-an+1)2+(bn-bn+1)2. 则显然{dn}是整数列,且由点Pn在以Pn-1Pn-