vue分享会准备

Vue实体对象

// Vue 2.x
const vm = new Vue({
	datas: {
		message: 'Hello Vue!'
	}
});
// 透过 $mount 挂载至指定的网页模板
vm.$mount('#app');
// Vue 3.0
const vm = Vm.createApp({
	data() {
		return {
			message: 'Hello Vue 3.0!'
		}
	}
});
vm.mount('#app');

定义一个组件ButtonCounter.vue

<template>
  <button @click="count++">You clicked me {{ count }} times.</button>
</template>

<script setup>
import { ref } from 'vue'

const count = ref(0)
</script>

使用组件ButtonCounter.vue按需引入

<template>
  <h1>Here is a child component!</h1>
  <ButtonCounter />
  <ButtonCounter />
  <ButtonCounter />
</template>
<script setup>
import ButtonCounter from './ButtonCounter.vue'
</script>

组件注册

1、全局注册:让组件在当前 Vue 应用中全局可用
如果使用单文件组件,你可以注册被导入的 .vue 文件:

import { createApp } from 'vue'
import MyComponent from './App.vue'

const app = createApp({})
app.component('MyComponent', MyComponent)

.component() 方法可以被链式调用:

app
  .component('ComponentA', ComponentA)
  .component('ComponentB', ComponentB)
  .component('ComponentC', ComponentC)

全局注册的组件可以在此应用的任意组件的模板中使用:

<!-- 这在当前应用的任意组件中都可用 -->
<ComponentA/>
<ComponentB/>
<ComponentC/>

2、局部注册:局部注册的组件在后代组件中并不可用
在使用 <script setup> 的单文件组件中,导入的组件可以直接在模板中使用,无需注册:

<template>
  <ComponentA />
</template>

<script setup>
import ComponentA from './ComponentA.vue'
</script>

如果没有使用 <script setup>,则需要使用 components 选项来显式注册:

import ComponentA from './ComponentA.js'

export default {
  components: {
    ComponentA
  },
  setup() {
    // ...
  }
}

全局注册虽然很方便,但有以下几个问题:

全局注册,但并没有被使用的组件无法在生产打包时被自动移除 (也叫“tree-shaking”)。如果你全局注册了一个组件,即使它并没有被实际使用,它仍然会出现在打包后的 JS 文件中。

全局注册在大型项目中使项目的依赖关系变得不那么明确。在父组件中使用子组件时,不太容易定位子组件的实现。和使用过多的全局变量一样,这可能会影响应用长期的可维护性。

相比之下,局部注册的组件需要在使用它的父组件中显式导入,并且只能在该父组件中使用。它的优点是使组件之间的依赖关系更加明确,并且对 tree-shaking 更加友好。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。它被设计为响应式的,可以轻松地与其他库或现有项目集成。微信公众号是一个基于微信平台的应用程序,允许用户在微信中浏览和使用各种功能。 要在Vue中实现微信公众号分享功能,你可以使用微信提供的JS-SDK。首先,你需要在微信公众平台上注册并获取到你的公众号的AppID。然后,在Vue项目中引入微信JS-SDK,并使用AppID初始化SDK。 接下来,你可以通过调用微信JS-SDK提供的接口来实现分享功能。例如,你可以使用`wx.ready`方法来监听微信准备就绪的事件,在事件回调函数中调用`wx.onMenuShareTimeline`和`wx.onMenuShareAppMessage`方法来设置分享的标题、链接、图标等信息。 下面是一个简单的示例代码: ```javascript // 引入微信JS-SDK import wx from 'weixin-js-sdk'; // 初始化微信JS-SDK wx.config({ appId: 'your_app_id', timestamp: 'your_timestamp', nonceStr: 'your_nonceStr', signature: 'your_signature', jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] }); // 监听微信准备就绪事件 wx.ready(function() { // 设置分享到朋友圈的信息 wx.onMenuShareTimeline({ title: '分享标题', link: '分享链接', imgUrl: '分享图标', success: function () { // 分享成功的回调函数 }, cancel: function () { // 取消分享的回调函数 } }); // 设置分享给朋友的信息 wx.onMenuShareAppMessage({ title: '分享标题', desc: '分享描述', link: '分享链接', imgUrl: '分享图标', success: function () { // 分享成功的回调函数 }, cancel: function () { // 取消分享的回调函数 } }); }); ``` 以上代码只是一个简单的示例,你需要根据你的实际需求进行相应的配置和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值