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

深圳住房与建设局网站在线家装设计平台

深圳住房与建设局网站,在线家装设计平台,网站备案代码如何加到,西安网站建设seo竞价一、Vue与VueComponent原型关系解析1. 原型链关系图解在Vue中,组件实例(VueComponent)与Vue实例之间存在特殊的原型链关系:VueComponent.prototype.__proto__ Vue.prototype这种设计使得所有组件都能访问Vue原型上定义的方法和属性。2. 原理验证示例// …

一、Vue与VueComponent原型关系解析

1. 原型链关系图解

在Vue中,组件实例(VueComponent)与Vue实例之间存在特殊的原型链关系:

VueComponent.prototype.__proto__ === Vue.prototype

这种设计使得所有组件都能访问Vue原型上定义的方法和属性。

2. 原理验证示例

// 在Vue原型上添加方法
Vue.prototype.$sayHello = function() {console.log('Hello from Vue prototype!')
}// 创建组件
const Company = Vue.extend({created() {this.$sayHello() // 可以调用Vue原型上的方法}
})// 使用组件
new Vue({el: '#app',components: { Company },template: '<Company/>'
})

关键点

  • 组件实例可以访问Vue原型上的属性和方法

  • 这种设计实现了Vue功能的扩展性

  • 这也是为什么能在组件中使用this.$routerthis.$store等全局属性的原因

二、单文件组件

1. 文件结构与命名规范

推荐的单文件组件结构:

MyComponent.vue
├── <template>    // 组件模板
├── <script>      // 组件逻辑
└── <style>       // 组件样式

命名建议

  • 文件名使用PascalCase(首字母大写)

  • 与组件名保持一致

  • 多单词命名使用大驼峰

  • 避免与HTML元素冲突

2. 组件导出方式对比

2.1 分别暴露
<script>
export const Company = {data() {return { name: "Vue Inc." }}
}
</script>

使用方式:

import { Company } from './Company.vue'
2.2 统一暴露
<script>
const Company = {data() {return { name: "Vue Inc." }}
}
export { Company }
</script>
2.3 默认暴露(推荐)
<script>
export default {name: 'Company',data() {return { name: "Vue Inc." }}
}
</script>

使用方式:

import Company from './Company.vue'

最佳实践

  • 优先使用默认暴露

  • 始终指定name选项

  • 保持组件名称与文件名一致

三、Vue脚手架工程化

1.1 配置国内镜像
// 淘宝镜像
npm config set registry https://registry.npm.taobao.org
// 阿里镜像
npm config set registry https://registry.npmmirror.com/
1.2 安装Vue CLI
npm install -g @vue/cli
1.3 创建项目
vue create my-project
cd my-project
npm run serve

2. 项目结构

my-project
├── public/            # 静态资源
│   ├── index.html     # 主入口HTML
│   └── favicon.ico   # 网站图标
├── src/
│   ├── assets/        # 静态资源
│   ├── components/    # 组件目录
│   ├── App.vue        # 根组件
│   └── main.js        # 应用入口
├── .gitignore         # Git忽略配置
├── babel.config.js    # Babel配置
└── package.json       # 项目配置

3. 核心文件解析

3.1 public/index.html
<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><!-- 针对IE浏览器的一个特殊配置,让IE浏览器以最高的渲染级别渲染页面 >=IE8 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 开启移动端的理想视口 --><meta name="viewport" content="width=device-width,initial-scale=1.0"><!-- 配置页签图表,BASE_URL指的public路径 --><link rel="icon" href="<%= BASE_URL %>favicon.ico"><!-- 配置网页标题 从package.json中获取标题--><title><%= htmlWebpackPlugin.options.title %></title></head><body><!-- 当浏览器不支持js,以下代码会出现在页面上 --><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><!-- 容器 --><div id="app"></div><!-- built files will be auto injected --></body>
</html>
3.2 src/main.js
import Vue from 'vue'
import App from './App.vue'Vue.config.productionTip = falsenew Vue({render: h => h(App)
}).$mount('#app')
3.3 src/App.vue
<template><div id="app"><Company/></div>
</template><script>
import Company from './components/Company.vue'export default {name: 'App',components: { Company }
}
</script><style>
/* 全局样式 */
</style>

四、Vue完整版与运行时版本区别

1. 核心差异对比

特性vue.js (完整版)vue.runtime.js (运行时版)
模板解析器包含不包含
体积较大较小(约轻30%)
使用方式支持template选项必须使用render函数
适用场景直接HTML引用构建工具配合使用

2. 使用示例对比

完整版使用方式
new Vue({el: '#app',template: '<div>{{ message }}</div>',data: {message: 'Hello Vue!'}
})
运行时版使用方式
new Vue({el: '#app',render(h) {return h('div', this.message)},data: {message: 'Hello Vue!'}
})

3. 脚手架中的配置

在vue.config.js中可以配置使用的版本:

module.exports = {configureWebpack: {resolve: {alias: {'vue$': 'vue/dist/vue.esm.js' // 使用完整版}}}
}

五、高级配置与优化建议

1. 自定义脚手架配置

创建vue.config.js进行个性化配置:

module.exports = {// 基本路径publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/',// 输出目录outputDir: 'dist',// 静态资源目录assetsDir: 'static',// 是否启用eslintlintOnSave: process.env.NODE_ENV !== 'production',// 生产环境sourceMapproductionSourceMap: false,// 开发服务器配置devServer: {port: 8080,proxy: {'/api': {target: 'http://localhost:3000',changeOrigin: true}}}
}

2. 性能优化建议

  1. 代码分割

const Company = () => import('./components/Company.vue')

  1. 第三方库CDN引入: 

module.exports = {configureWebpack: {externals: {vue: 'Vue','vue-router': 'VueRouter'}}
}

Gzip压缩

npm install compression-webpack-plugin --save-dev

图片优化

module.exports = {chainWebpack: config => {config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({ bypassOnDebug: true })}
}

六、总结与最佳实践

1. 组件开发黄金法则

  1. 单一职责原则:每个组件只做一件事

  2. 明确接口:通过props和events定义清晰的组件API

  3. 可复用设计:考虑组件的通用性

  4. 命名一致性:保持文件名、组件名和注册名一致

2. 工程化实践建议

  1. 项目结构

src/
├── components/      # 基础组件
├── views/           # 路由组件
├── store/           # Vuex相关
├── router/          # 路由配置
├── api/             # 接口封装
└── utils/           # 工具函数
  1. 代码规范

    • 使用ESLint + Prettier统一代码风格

    • 添加JSDoc注释

    • 编写组件文档(可使用Storybook)

  2. 测试策略

    • 单元测试:Jest + Vue Test Utils

    • E2E测试:Cypress

  3. 学习路径推荐

通过本文的系统学习,您已经掌握了Vue单文件组件和脚手架工程化开发的核心知识。接下来可以通过实际项目实践来巩固这些概念,逐步提升Vue开发技能水平。

  1. 掌握单文件组件开发

  2. 熟悉Vue CLI工程化配置

  3. 学习Vue Router和Vuex

  4. 了解服务端渲染(Nuxt.js)

  5. 探索Vue 3新特性


文章转载自:

http://KpQhwOCJ.zjqwr.cn
http://oIKCpZCX.zjqwr.cn
http://hcEdtqcv.zjqwr.cn
http://s88N2bgv.zjqwr.cn
http://b8L0tpE8.zjqwr.cn
http://T5roUrOF.zjqwr.cn
http://RmY8ieRD.zjqwr.cn
http://cjyV32Ot.zjqwr.cn
http://5Hlkxbiz.zjqwr.cn
http://uaXahIQY.zjqwr.cn
http://BMhCD8mB.zjqwr.cn
http://JmpYzixx.zjqwr.cn
http://ZET7O3Ow.zjqwr.cn
http://FQU8L00d.zjqwr.cn
http://u3zDkmtQ.zjqwr.cn
http://4rD6uQmj.zjqwr.cn
http://idxhLO3d.zjqwr.cn
http://XU6Ea1Le.zjqwr.cn
http://2P4pbzoq.zjqwr.cn
http://eYHXb64q.zjqwr.cn
http://fkaAbqri.zjqwr.cn
http://56PpHKi6.zjqwr.cn
http://LHLE3Tay.zjqwr.cn
http://dSAd2tKU.zjqwr.cn
http://8joTTuDm.zjqwr.cn
http://9lpQrxxb.zjqwr.cn
http://jtMGa4ds.zjqwr.cn
http://OaOr3sRK.zjqwr.cn
http://409uKIzE.zjqwr.cn
http://AYLM8zO0.zjqwr.cn
http://www.dtcms.com/wzjs/650461.html

相关文章:

  • 微信长图的免费模板网站外包做网站赚钱么
  • 利用小米路由器mini做网站吉林省住房和城乡建设厅网站
  • 曲靖模板网站建设wordpress 教程 mysql
  • php网站后台教程阿里买域名 电脑做网站
  • 网站开发有什么软件有哪些软件开发的一般流程
  • 媒体网站推广法自家房子做民宿的网站
  • 青岛网站建设企业建站网络营销是什么活动
  • 宁波制作网站知名陶瓷类网站建设
  • 山东省住房城乡建设部网站首页网络优化报告
  • 淄博网站排名优化公司海洋cms做电影网站好做吗
  • 上海紫博蓝网站招商网站有哪些
  • dw做旅游网站毕业设计模板下载环球外贸论坛官网
  • 企业商务网站的技术网络营销策划推广
  • wap网站实例做网站空间要多大
  • 教育培训机构网站建设容桂营销网站建设
  • 心悦每周免做卡网站教育培训网站建设ppt
  • 公司网站建设工作内容WordPress网页自动重定向
  • 网站网络推广方法设计工作室网站源码
  • 张家港微网站无锡短视频推广
  • 常州商城网站制作公司佛山北京网站建设
  • 浙江住房和建设网站郑州注册公司流程
  • 如何建立一个网站请简述流程郑州市金水区
  • 如何策划手机网站合肥专业网站制
  • 有口碑的徐州网站建设长沙网站优化外包公司
  • 涨口碑说做的网站免费生成网站的app
  • 做网站做的好的公司有哪些粉色博客wordpress
  • 2018做网站的视频phpcms做汽车网站
  • 临城网站建设好网站的标准
  • html5网站开发语言的有点网上做二建题那个网站好
  • 怎么用ftp修改网站网站宽度设计