.html页面引入vue并使用公共组件

问题描述:
整体项目采用传统 .html 文件搭建,vue仅作为渲染数据工具使用,需要使用的地方使用 <script> 标签引入。
现有数个页面,每个页面都包含相同 headerfooter ,希望可以把 headerfooter 提取出来,避免太多重复代码。

解决办法
公共部分写在 .js 文件里,本质就是在当前页面中写的公共组件,组件规则遵从vue的组件规则。
template后面可以采用字符串拼接(内容少),或者是使用 `定义模板字符串。

目录结构:

—test
——header.js //公共头部
——index.html //页面
——vue.js
在这里插入图片描述
index.html

<!doctype html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>test</title>
		<!--引入vue-->
		<script type="text/javascript" src="vue.js"></script>
		<!--引入公共组件-->
		<script type="text/javascript" src="header.js"></script>
	</head>
	<body style="font-size: 30px">
		<div id="vue_app">
			<!--自定义的组件使用-->
			<common-head></common-head>
			<!--页面自有内容-->
			<div style="background: #fba">我是内容</div>
		</div>
		</div>
	<script>
		//vue
		app_all=new Vue({
			el: "#vue_app"
		})
	</script>
	</body>

</html>

header.js

/*Vue.component('common-head',{
	template:'<div>'+
				'<h1>hhhhhhh</h1>' + 
				'<h1>duusdfsjkdfh</h1>' +
			  '</div>'
});*/
Vue.component('common-head',{
	template:`<div style="background: #baf">
				<h1>这是公共组件</h1>
				<h1>公共的头部</h1>
			  </div>`
});
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
Vue3中,可以通过使用`defineAsyncComponent`方法来引入异步组件,从而实现按需加载。在路由中引入公共组件可以使用以下步骤: 1. 在`src/components`目录下创建公共组件文件,例如`Header.vue`。 2. 在路由文件引入`defineAsyncComponent`方法,并使用该方法引入公共组件。 例如,假设我们有一个`Header.vue`组件,它在多个页面中都需要使用。我们可以在路由文件中定义一个异步组件引入组件: ```js import { defineAsyncComponent } from 'vue' import { createRouter, createWebHistory } from 'vue-router' const router = createRouter({ history: createWebHistory(), routes: [ { path: '/', name: 'Home', component: defineAsyncComponent(() => import('@/views/Home.vue')), // 引入公共组件 meta: { header: defineAsyncComponent(() => import('@/components/Header.vue')) } }, // ... ] }) export default router ``` 上述代码中,我们使用`defineAsyncComponent`方法来引入`Header.vue`组件,并将其作为`meta`的一个属性。在需要使用组件页面中,我们可以通过访问`meta.header`来引用组件。 ```html <template> <div> <header-component /> <!-- ... --> </div> </template> <script> import { computed } from 'vue' import { useRoute } from 'vue-router' export default { components: { HeaderComponent: computed(() => useRoute().meta.header) } } </script> ``` 上述代码中,我们使用`computed`和`useRoute`方法来访问`meta.header`属性,并将其作为`HeaderComponent`的组件引用。 注意:在Vue3中,`createRouter`和`createWebHistory`方法的使用方式发生了改变,请根据实际情况进行修改。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值