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

品牌网站建设 磐石网络官方网站手机源码网

品牌网站建设 磐石网络官方网站,手机源码网,做电缆好的网站,书店网站建设网站栏目结构组件名的命名规则 定义组件名的两种方式&#xff1a; 短横线分隔命名&#xff0c;Kebab Case&#xff0c;例如my-component-name。单词首字母大写命名&#xff0c;Pascal Case&#xff0c;例如MyComponentName。 第一种方式在模板中使用<my-component-name>引用该元素…

组件名的命名规则

定义组件名的两种方式:

  1. 短横线分隔命名,Kebab Case,例如my-component-name
  2. 单词首字母大写命名,Pascal Case,例如MyComponentName

第一种方式在模板中使用<my-component-name>引用该元素,第二种方式可以使用<my-component-name><MyComponentName>


全局注册和局部注册

在组件基础一文中我们提到Vue.component这种组件注册方式是全局注册的。全局注册意味着它们可以在其他Vue实例中直接使用。

但有时对于某个全局注册的组件,我们并不是很频繁地使用,或者我们不再需要这个组件,但它仍会被包含在构建结果中。

于是我们可以采用局部注册的方式。

不采用模块系统的局部注册:

<div id="app"><component-a></component-a>
</div>
<script>var ComponentA = {template: '<div>Component A</div>'};new Vue({el: '#app',components: {'component-a': ComponentA},});
</script>

如果你通过 Babel 和 webpack 使用 ES2015 模块,可以像下面这样进行局部注册:

import ComponentA from './ComponentA'export default{components:{ComponentA //ComponentA:ComponentA的缩写}
}

当然,在模块化系统中,我们也可以进行全局注册,除了使用之前提到的Vue.component,还可以在使用了webpack或Vue CLI 3+的前提下,使用require.context进行全局注册:

main.js

import Vue from 'vue'
import App from './App.vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'const requireComponent=require.context('./components',//基础组件相对路径false,//是否递归查询其子目录/Base[A-Z]\w+.(vue|js)$/ //基础文件名的正则表达式
)requireComponent.keys().forEach(fileName=>{//获取组件配置const compoentConfig=requireCompoennt(fileName)//获取组件的PascalCase命名const componentName=upperFirst(//大写首字母camelCase(//转换字符串string为驼峰写法//获取与目录深度无关的文件名fileName.split('/').pop().replace(/\.\w+$/,'')))//全局注册组件Vue.component(componentName,// 如果这个组件选项是通过 `export default` 导出的,// 那么就会优先使用 `.default`,// 否则回退到使用模块的根。componentConfig.default || componentConfig)
})//阻止Vue在启动时生成生产提示,如下:
//You are running Vue in development mode.
//Make sure to turn on production mode when deploying for production.
//See more tips at https://vuejs.org/guide/deployment.html
Vue.config.productionTip=falsenew Vue({//从App提供的模板编译渲染函数//h代指createElement方法,接收根组件App来创建VNoderender:h=>h(App)
}).$mount('#app') //手动挂载

Vue.component用于全局注册单个组件,上面方法用于全局注册多个组件,所以会多次调用Vue.component方法。


额外话题

作者发现了Vue.config.productionTip=false在某些位置不生效的情况。

实际上观察Vue检查denvtools插件安装情况和开发模式的类型的源码部分可发现:

var inBrowser = typeof window !== "undefined";....
....// devtools global hook
/* istanbul ignore next */
if (inBrowser) {setTimeout(function () {if (config.devtools) {if (devtools) {devtools.emit('init', Vue);} else {console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\n' +'https://github.com/vuejs/vue-devtools');}}if (config.productionTip !== false &&typeof console !== 'undefined') {console[console.info ? 'info' : 'log']("You are running Vue in development mode.\n" +"Make sure to turn on production mode when deploying for production.\n" +"See more tips at https://vuejs.org/guide/deployment.html");}}, 0);
}

Vue.config.productionTip=false应该在inBrowsertrue时就已经被设置好,而inBrowser表示当前是否是浏览器环境,它通过检测window对象是否存在来判断,window对象在页面被渲染后定义。所以,Vue.config.productionTip设置时机是在页面渲染前。body中的script标签是在body解析完后才执行的。换言之,Vue.config.productionTip设置时机是在body解析前。

http://www.yayakq.cn/news/7030/

相关文章:

  • 电视剧怎么做原创视频网站个人建设网站难吗
  • 上海网站建设 迈若如何修改wordpress登录页面
  • 贵州省公路建设有限公司网站网站建设及发布的流程
  • 工信部网站信息查询中国网站开发排名
  • 网站建设的内部风险分析邯郸个人做网站
  • 买东西的网站都有哪些wordpress唯美主题
  • 电子商务网站建设的开发方案wordpress 首页添加链接
  • 手机网站源码怎么打开想在网上卖货需要怎么做
  • 好的网站建设企业中国seo高手排行榜
  • 做英文网站2014联英人才网重庆招聘网
  • 做网站的公司 苏迪安装好的 wordpress
  • 装修公司网站建设的意义网站备案主体修改
  • 口腔网站设计图应用公园app开发步骤详解
  • 一个阿里云服务器可以放几个网站重庆网站推广公司哪家好
  • 全网展示型网站建设广告制作公司开票范围
  • 网站开发入门书中国建设教育协会培训中心官网
  • 网站关键词优化方式微山县建设局官方网站
  • 欢迎回来请牢记网站域名眼科医院网站建设方案
  • 有做电动车修车的网站吗编程培训机构招聘
  • 做炫舞情侣头像动态图网站建设银行的英语网站首页
  • 怎么区别做pc端和手机端网站中文域名交易平台
  • 织梦网站 数据库wordpress口腔
  • 做企业网站对企业的好处wordpress轮播图特效
  • aspnet网站开发例题中国建设银行网站结构
  • 企业网站建设有什么要求微商城网站建设新闻
  • 创建网站的基本步骤怎么做企业网站二维码扫描
  • 太仓住房与城乡建设局网站wordpress edd插件
  • 怎么做漫画网站怎么用模板做网站
  • 东阳做网站公司山东聚搜网络科技有限公司
  • 网络彩票网站建设ASP.NET实用网站开发答案