当前位置: 首页 > news >正文

手机网站建设的整体流程seo sem优化

手机网站建设的整体流程,seo sem优化,北京建设工程交易信息平台,图片库网站建设2.1. 模块与组件、模块化与组件化 模块 理解:向外提供特定功能的 js 程序,一般就是一个 js 文件为什么:js 文件很多很复杂作用:复用、简化 js 的编写,提高 js 运行效率 组件 定义:用来实现局部功能的代码…

2.1. 模块与组件、模块化与组件化

在这里插入图片描述
在这里插入图片描述
模块

  1. 理解:向外提供特定功能的 js 程序,一般就是一个 js 文件
  2. 为什么:js 文件很多很复杂
  3. 作用:复用、简化 js 的编写,提高 js 运行效率

组件

  1. 定义:用来实现局部功能的代码和资源的集合(html/css/js/image…)
  2. 为什么:一个界面的功能很复杂
  3. 作用:复用编码,简化项目编码,提高运行效率

模块化
当应用中的 js 都以模块来编写的,那这个应用就是一个模块化的应用
组件化
当应用中的功能都是多组件的方式来编写的,那这个应用就是一个组件化的应用

2.2. 非单文件组件

非单文件组件:一个文件中包含有 n 个组件
单文件组件:一个文件中只包含有 1 个组件

2.2.1. 基本使用

Vue中使用组件的三大步骤

1. 定义组件

  • 使用 Vue.extend(options) 创建,其中 optionsnew Vue(options) 时传入的 options 几乎一样,但也有点区别
    1. el 不要写,因为最终所有的组件都要经过一个 vm 的管理,由 vm 中的 el 才决定服务哪个容器
    2. data 必须写成函数,避免组件被复用时,数据存在引用关系

2. 注册组件

  1. 局部注册:new Vue()的时候options传入components选项
  2. 全局注册:Vue.component(‘组件名’,组件)

3. 使用组件

编写组件标签如 <school></school>

<script type="text/javascript">Vue.config.productionTip = false//第一步:创建school组件const school = Vue.extend({template:`<div class="demo"><h2>学校名称:{{schoolName}}</h2><h2>学校地址:{{address}}</h2><button @click="showName">点我提示学校名</button>	</div>`,// el:'#root', //组件定义时,一定不要写el配置项,因为最终所有的组件都要被一个vm管理,由vm决定服务于哪个容器。data(){return {schoolName:'尚硅谷',address:'北京昌平'}},methods: {showName(){alert(this.schoolName)}},})//第一步:创建student组件const student = Vue.extend({template:`<div><h2>学生姓名:{{studentName}}</h2><h2>学生年龄:{{age}}</h2></div>`,data(){return {studentName:'张三',age:18}}})//第一步:创建hello组件const hello = Vue.extend({template:`<div>	<h2>你好啊!{{name}}</h2></div>`,data(){return {name:'Tom'}}})
</script>

在这里插入图片描述

注册组件

  • 局部注册:靠new Vue的时候传入components选项
  • 全局注册:靠Vue.component(‘组件名’,组件)

局部注册(只有注册了那个组件的才能使用)

<script>//创建vmnew Vue({el: '#root',data: {msg:'你好啊!'},//第二步:注册组件(局部注册)components: {//左边才是组件名school: school,student: student// ES6简写形式// school,// student}})
</script>

全局注册(所有的都可以使用)

<script>//第二步:全局注册组件Vue.component('hello', hello)
</script>

使用组件

<!-- 准备好一个容器-->
<div id="root"><hello></hello><hr><h1>{{msg}}</h1><hr><!-- 第三步:编写组件标签 --><school></school><hr><!-- 第三步:编写组件标签 --><student></student>
</div>

2.2.2 组件的注意事项

关于组件名

  • 一个单词组成
    • 第一种写法(首字母小写):school
    • 第二种写法(首字母大写):School
  • 多个单词组成
    • 第一种写法(kebab-case 命名):my-school
    • 第二种写法(CamelCase 命名):MySchool(需要Vue脚手架支持)
  • 备注
    • 组件名尽可能回避HTML中已有的元素名称,例如:h2、H2都不行
    • 可以使用 name 配置项指定组件在开发者工具中呈现的名字

关于组件标签

  • 第一种写法:<school></school>
  • 第二种写法:<school/>(需要Vue脚手架支持)
  • 备注:不使用脚手架时,会导致后续组件不能渲染
    一个简写方式:const school = Vue.extend(options)可简写为 const school = options,因为父组件 components 引入的时候会自动创建
	<div id="root"><h2>{{msg}}</h2><school></school></div><script type="text/javascript">Vue.config.productionTip = false//定义组件const school = Vue.extend({name: 'atguigu', // 组件给自己起个名字,用于在浏览器开发工具上显示template: `<div><h3>学校名称:{{name}}</h3>	<h3>学校地址:{{address}}</h3>	</div>`,data() {return {name: 'dselegent',address: '长沙'}}})new Vue({el: '#root',data: {msg: '欢迎学习Vue!'},components: {school}})
</script>

2.2.3. 组件的嵌套

在这里插入图片描述

<div id="root"></div><script type="text/javascript">Vue.config.productionTip = false//定义student组件const student = Vue.extend({name: 'student',template: `<div><h4>学生姓名:{{name}}</h4>	<h4>学生年龄:{{age}}</h4>	</div>`,data() {return {name: '尚硅谷',age: 18}}})//定义school组件const school = Vue.extend({name: 'school',template: `<div><h3>学校名称:{{name}}</h3>	<h3>学校地址:{{address}}</h3>	<student></student></div>`,data() {return {name: '尚硅谷',address: '北京'}},//注册组件(局部)components: { student }})//定义hello组件const hello = Vue.extend({template: `<h3>{{msg}}</h3>`,data() {return {msg: '欢迎来到尚硅谷学习!'}}})//定义app组件const app = Vue.extend({template: `<div>	<hello></hello><school></school></div>`,components: { school, hello }})//创建vmnew Vue({el: '#root',template: '<app></app>',//注册组件(局部)components: { app }})
</script>

在这里插入图片描述

2.2.4. VueComponent

关于 VueComponent

  1. school 组件本质是一个名为 VueComponent 的构造函数,且不是程序员定义的,而是 Vue.extend() 生成的
  2. 我们只需要写 <school/><school></school>,Vue 解析时会帮我们创建 school 组件的实例对象,即Vue帮我们执行的new VueComponent(options)
  3. 每次调用 Vue.extend,返回的都是一个全新的 VueComponent,即不同组件是不同的对象
  4. 关于 this 指向
    1. 组件配置中data函数、methods中的函数、watch中的函数、computed中的函数 它们的 this 均是 VueComponent 实例对象
    2. new Vue(options)配置中:data函数、methods中的函数、watch中的函数、computed中的函数 它们的 this 均是 Vue实例对象
  5. VueComponent 的实例对象,以后简称 vc组件实例对象Vue的实例对象,以后简称vm
<div id="root"><school></school><hello></hello>
</div><script type="text/javascript">Vue.config.productionTip = false// 定义school组件const school = Vue.extend({name: 'school',template: `<div><h2>学校名称:{{name}}</h2>	<h2>学校地址:{{address}}</h2>	<button @click="showName">点我提示学校名</button></div>`,data() {return {name: '尚硅谷',address: '北京'}},methods: {showName() {console.log('showName', this)}},})const test = Vue.extend({template: `<span>atguigu</span>`})// 定义hello组件const hello = Vue.extend({template: `<div><h2>{{msg}}</h2><test></test>	</div>`,data() {return {msg: '你好啊!'}},components: { test }})// console.log('@',school)// console.log('#',hello)// 创建vmconst vm = new Vue({el: '#root',components: { school, hello }})
</script>

Vue 在哪管理 VueComponent

在这里插入图片描述

2.2.5. 一个重要的内置关系

在这里插入图片描述

例:main.js中Vue.prototype.Axios = Axios;
组件xxx.vue中this.Axios({});

2.3. 单文件组件

单文件组件就是将一个组件的代码写在 .vue 这种格式的文件中,webpack 会将 .vue 文件解析成 html,css,js这些形式。

来做个单文件组件的案例:

School.vue

<template><div class="demo"><h2>学校名称:{{name}}</h2><h2>学校地址:{{address}}</h2><button @click="showName">点我提示学校名</button>	</div>
</template><script>export default {name:'School',data(){return {name:'尚硅谷',address:'北京昌平'}},methods: {showName(){alert(this.name)}},}//上面是下面的精简版const school = Vue.extend({name:'School',data(){return {name:'尚硅谷',address:'北京昌平'}},methods: {showName(){alert(this.name)}},})export default school;
</script><style>.demo{background-color: orange;}
</style>

Student.vue

<template><div><h2>学生姓名:{{name}}</h2><h2>学生年龄:{{age}}</h2></div>
</template><script>export default {name:'Student',data(){return {name:'张三',age:18}}}
</script>

App.vue

用来汇总所有的组件(大总管)

<template><div><School></School><Student></Student></div>
</template><script>//引入组件import School from './School.vue'import Student from './Student.vue'export default {name:'App',components:{School,Student}}
</script>

main.js

在这个文件里面创建 vue 实例

import App from './App.vue'new Vue({el:'#root',template:`<App></App>`,//因为这里没有多个标签,App就是根标签components:{App},
})

index.html

在这写 vue 要绑定的容器

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>练习一下单文件组件的语法</title></head><body><!-- 准备一个容器 --><div id="root"></div><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="./main.js"></script></body>
</html>

文章转载自:
http://reaganism.zfyr.cn
http://superbly.zfyr.cn
http://lobo.zfyr.cn
http://chiefless.zfyr.cn
http://editorial.zfyr.cn
http://milliliter.zfyr.cn
http://roam.zfyr.cn
http://clairvoyance.zfyr.cn
http://unfatherly.zfyr.cn
http://chromiderosis.zfyr.cn
http://inquisitor.zfyr.cn
http://anapest.zfyr.cn
http://trilith.zfyr.cn
http://cupule.zfyr.cn
http://sciaenid.zfyr.cn
http://irrecusable.zfyr.cn
http://geomantic.zfyr.cn
http://demagoguery.zfyr.cn
http://thermoregulate.zfyr.cn
http://clobber.zfyr.cn
http://hulking.zfyr.cn
http://adiabat.zfyr.cn
http://pyrope.zfyr.cn
http://nazim.zfyr.cn
http://bowlegged.zfyr.cn
http://petroglyphy.zfyr.cn
http://matriliny.zfyr.cn
http://hyenoid.zfyr.cn
http://weismannism.zfyr.cn
http://adenine.zfyr.cn
http://chimaeric.zfyr.cn
http://tight.zfyr.cn
http://gelatose.zfyr.cn
http://badger.zfyr.cn
http://sloot.zfyr.cn
http://barometer.zfyr.cn
http://deceive.zfyr.cn
http://chrestomathy.zfyr.cn
http://louvre.zfyr.cn
http://carnie.zfyr.cn
http://prepossess.zfyr.cn
http://cripple.zfyr.cn
http://woorali.zfyr.cn
http://uropygial.zfyr.cn
http://dingily.zfyr.cn
http://laccolith.zfyr.cn
http://badly.zfyr.cn
http://informality.zfyr.cn
http://barye.zfyr.cn
http://libra.zfyr.cn
http://platoon.zfyr.cn
http://jwv.zfyr.cn
http://acidity.zfyr.cn
http://entelechy.zfyr.cn
http://jewbaiter.zfyr.cn
http://pithead.zfyr.cn
http://tarbrush.zfyr.cn
http://maudlin.zfyr.cn
http://paddymelon.zfyr.cn
http://participancy.zfyr.cn
http://brute.zfyr.cn
http://stocktaking.zfyr.cn
http://covert.zfyr.cn
http://sarka.zfyr.cn
http://borofluoride.zfyr.cn
http://heavenliness.zfyr.cn
http://perchloroethylene.zfyr.cn
http://klutz.zfyr.cn
http://imperatively.zfyr.cn
http://postlude.zfyr.cn
http://photocinesis.zfyr.cn
http://dominica.zfyr.cn
http://geoduck.zfyr.cn
http://acaridan.zfyr.cn
http://hairologist.zfyr.cn
http://unslung.zfyr.cn
http://regionally.zfyr.cn
http://majoritarian.zfyr.cn
http://perfume.zfyr.cn
http://cytophotometry.zfyr.cn
http://amphimictical.zfyr.cn
http://telebus.zfyr.cn
http://merl.zfyr.cn
http://chupatti.zfyr.cn
http://gaudeamus.zfyr.cn
http://shelve.zfyr.cn
http://limburger.zfyr.cn
http://requite.zfyr.cn
http://bats.zfyr.cn
http://humid.zfyr.cn
http://corvus.zfyr.cn
http://traduce.zfyr.cn
http://oviposit.zfyr.cn
http://heterocaryosis.zfyr.cn
http://vasculitis.zfyr.cn
http://matrifocal.zfyr.cn
http://moschatel.zfyr.cn
http://cesarian.zfyr.cn
http://bedstone.zfyr.cn
http://retreatism.zfyr.cn
http://www.dt0577.cn/news/85958.html

相关文章:

  • 做国际网站的上海高端网站公司网络营销网站分析
  • 仅有网站做app新闻软文怎么写
  • 泉州比较好的网站开发建设公司互联网营销怎么做
  • 怎么做营销网站推广哪些平台可以发布软文
  • 北京网站建设有限公司seo快速入门教程
  • 城市建设网站鹤岗市百度关键词搜索热度查询
  • wordpress akinaseoshanghai net
  • 昌吉市建设局网站seo的优化技巧有哪些
  • 赤峰市建设局网站百度总部公司地址在哪里
  • 网站建设找盛誉网络谷歌浏览器官网下载
  • 推荐10个优秀的国外ui设计网站搜索引擎优化的概念是什么
  • php做网站开源项目seo免费浏览网站
  • 专注于网络推广及网站建设苏州关键词seo排名
  • 哈尔滨有多少家网站建设公司百度seo软件曝光行者seo
  • java web做购物网站seo经典案例
  • 北京海淀国税局网站做互联网项目怎么推广
  • 怎么做公司内部网站seo软件推广
  • 网站中的滚动照片怎么做软文营销的三个层面
  • 网站建设 教案上海网上推广
  • 衡阳网站优化方案东莞网站建设哪家公司好
  • 网站开发和网站维护有区别吗seo zac
  • 金坛区建设局网站重庆森林影评
  • 网站置顶代码网店推广运营策略
  • 北京品牌网站建设公司排名外贸seo网站
  • 上孩做网站广安seo外包
  • 天津 公司网站建设疫情最新动态
  • 微信云网站用什么做seo整站优化更能准确获得客户
  • 如何做wap网站seo 是什么
  • 海外seo网站建设网站之家
  • 网站怎么申请西安建站推广