最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue組件如何被其他項(xiàng)目引用

 更新時(shí)間:2017年04月13日 08:41:17   作者:小龍女先生  
這篇文章主要為大家詳細(xì)介紹了vue組件如何被其他項(xiàng)目引用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

自己寫的vue組件怎么才能讓其他人引用呢,或者是共用組件如何讓其他項(xiàng)目引用。本文就粗細(xì)的介紹下,如有疑問歡迎共同討論。在這里你能了解下如下知識(shí)點(diǎn):

1. 如何發(fā)布一個(gè)包到npmjs倉(cāng)庫(kù)上

2.如何引用一個(gè)npm包,尤其是本地引用

3.vue組件的兩種引用方案

一、發(fā)布一個(gè)包到npm的步驟

在npmjs.org上注冊(cè)一個(gè)賬號(hào)
然后進(jìn)入命令提示窗口輸入:

  • npm adduser: 進(jìn)入添加用戶
  • Username your name: 設(shè)置用戶名
  • Password your password: 設(shè)置密碼
  • Email youremail:設(shè)置郵箱


登錄信息都保存在用戶目錄下的.npmrc文件中(以token的方式保存)

      npm publish:發(fā)布包

執(zhí)行npm publish這前,請(qǐng)切換到需要發(fā)包的項(xiàng)目根目錄下。

      npm unpublish --force:移除一個(gè)發(fā)布包(也可以移除指定版本的包)

注意:

  • 發(fā)包前必須要在npmjs上注冊(cè)一個(gè)賬號(hào)
  • 每次發(fā)布的時(shí)候都需要重新更新版本
  • 也可以用npm logout登出用戶,用npm login登錄用戶


二、build方式引用vue組件

示例使用的是本地安裝一個(gè)npm包。因?yàn)榘寻l(fā)布到npmjs,然后再npm到項(xiàng)目中太過麻煩(由于我們要做來回調(diào)整和測(cè)試)。實(shí)現(xiàn)vue組件三步驟:

1. 配置組件(被引用的組件),可以省略

配置package.json,主要是增加main節(jié)點(diǎn)

"main": "index.js"

主是main的這個(gè)節(jié)點(diǎn),如果不配置,我們?cè)谄渌?xiàng)目中就不用import XX from '包名'來引用了,只能以包名作為起點(diǎn)來指定相對(duì)的路徑。

導(dǎo)出可供外部訪問的組件

import VueTree from './components/Hello'
module.exports = {
 VueTree
}

主要是導(dǎo)出可以讓外部訪問的組件,這里沒有直接導(dǎo)出main.js,是因?yàn)槲覀兯枰氖且恍┳咏M件,而根組件(因?yàn)樗嬖谥苯訏燧d到dom上的操作)。

編寫打包成為一個(gè)組件的腳本

var webpack = require('webpack')
var path = require('path')
var vueLoaderConfig = require('./vue-loader.conf')

function resolve (dir) {
 return path.join(__dirname, '..', dir)
}

var opt = {
 entry: {
 'vue-tree-common': './src/comp.js'
 },
 output: {
 path: resolve('dist'),
 filename: '[name].js',
 library: 'vue-tree-common',
 libraryTarget: 'commonjs2' //注意這里,打包的標(biāo)準(zhǔn)
 },
 resolve: {
 extensions: ['.js', '.vue'],
 modules: [
  resolve('src'),
  resolve('node_modules')
 ]
 },
 module: {
 rules: [
  {
  test: /\.vue$/,
  loader: 'vue-loader',
  options: vueLoaderConfig
  },
  {
  test: /\.js$/,
  loader: 'babel-loader',
  include: [resolve('src'), resolve('node_modules')]
  }
 ]
 }
}

var compiler = webpack(opt)
compiler.run(function(err, state) {
 console.log(err)
})

此種打包方式會(huì)將此組件的所有引用打包成一個(gè)文件,還是存在不合理的現(xiàn)象。

生成包 通過上述三個(gè)步驟的配置,只需要運(yùn)行打包成組件的腳本就可以生成發(fā)布包了。

2、本地如何引用npm包(安裝發(fā)布好的包)

用命令模式進(jìn)入開發(fā)項(xiàng)目文件夾,用命令安裝包。npm install --save 本地路徑  即可。

npm install --save D:\MyProject\vue2-tree

3、根據(jù)包名直接定位組件

<template>
 <div id="app">
 <img src="./assets/logo.png">
 <hello></hello>
 <VueTree></VueTree>
 </div>
</template>

<script>
import Hello from './components/Hello'
import {VueTree} from 'vue-tree/dist/vue-tree-common' //重點(diǎn)

export default {
 name: 'app',
 components: {
 Hello, 
 VueTree
 }
}
</script>

<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
</style>

此處我用的是import {VueTree} from 'vue-tree/dist/vue-tree-common這種方式引入的包,因?yàn)樵谠接玫膒ackage.json中main節(jié)點(diǎn)配置的index.js。

三、更為直接的引用vue組件

  • 我們還需要npm本地安裝或者再現(xiàn)安裝;
  • 按照如下圖所示引用:


四、總結(jié)

  • vue的版本需要一致,如果不一致需要調(diào)整。
  • vue的幾種打包方式:UMD、common、esm。
  • vue分為部分和完成打包,區(qū)別就是template的支持。
  • vue組件樣式存在圖片的引用時(shí),請(qǐng)使用單獨(dú)的樣式引入,因?yàn)榻M件的引入是不帶圖片的。
  • “build方式引用vue組件”此方式可以把組件打成不同的包,方便不同規(guī)范引用。

本文已被整理到了《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。

關(guān)于vue.js組件的教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實(shí)現(xiàn)簡(jiǎn)單loading進(jìn)度條

    vue實(shí)現(xiàn)簡(jiǎn)單loading進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)單loading進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Vue 引入AMap高德地圖的實(shí)現(xiàn)代碼

    Vue 引入AMap高德地圖的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Vue 引入AMap高德地圖的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解前后端分離之VueJS前端

    詳解前后端分離之VueJS前端

    本篇文章主要介紹了詳解前后端分離之VueJS前端,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • vue使用jsencrypt實(shí)現(xiàn)rsa前端加密的操作代碼

    vue使用jsencrypt實(shí)現(xiàn)rsa前端加密的操作代碼

    這篇文章主要介紹了vue使用jsencrypt實(shí)現(xiàn)rsa前端加密,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • vue?請(qǐng)求后端數(shù)據(jù)的示例代碼

    vue?請(qǐng)求后端數(shù)據(jù)的示例代碼

    在vue中,我們?nèi)绾瓮ㄟ^請(qǐng)求接口來訪問后端的數(shù)據(jù)呢?在這里簡(jiǎn)單總結(jié)了一個(gè)小示例,對(duì)vue請(qǐng)求后端數(shù)據(jù)實(shí)例代碼感興趣的朋友一起看看吧
    2022-09-09
  • 深入探討如何在Vue中使用EventBus實(shí)現(xiàn)組件間的高效通信

    深入探討如何在Vue中使用EventBus實(shí)現(xiàn)組件間的高效通信

    在現(xiàn)代前端開發(fā)中,Vue.js?作為一種流行的漸進(jìn)式框架,廣泛應(yīng)用于各類?Web?項(xiàng)目的構(gòu)建中,本文將深入探討如何在?Vue?中使用?EventBus,實(shí)現(xiàn)組件間的高效通信,需要的可以了解下
    2024-11-11
  • defineProperty和Proxy基礎(chǔ)功能及性能對(duì)比

    defineProperty和Proxy基礎(chǔ)功能及性能對(duì)比

    這篇文章主要為大家介紹了defineProperty和Proxy基礎(chǔ)功能及性能對(duì)比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vue.js將時(shí)間戳轉(zhuǎn)化為日期格式的實(shí)現(xiàn)代碼

    vue.js將時(shí)間戳轉(zhuǎn)化為日期格式的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue.js將時(shí)間戳轉(zhuǎn)化為日期格式的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Vue雙向綁定原理及實(shí)現(xiàn)方法

    Vue雙向綁定原理及實(shí)現(xiàn)方法

    Vue雙向綁定是指數(shù)據(jù)模型和視圖之間的數(shù)據(jù)同步,通過Object.defineProperty()方法實(shí)現(xiàn)數(shù)據(jù)劫持,利用觀察者模式實(shí)現(xiàn)數(shù)據(jù)更新和視圖更新的自動(dòng)同步,實(shí)現(xiàn)方式包括指令、計(jì)算屬性、v-model等,優(yōu)化方法包括使用虛擬DOM、合理使用computed和watch等
    2023-04-04
  • 詳解Weex基于Vue2.0開發(fā)模板搭建

    詳解Weex基于Vue2.0開發(fā)模板搭建

    這篇文章主要介紹了詳解Weex基于Vue2.0開發(fā)模板搭建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03

最新評(píng)論

普兰店市| 如东县| 芒康县| 长兴县| 郑州市| 高清| 额尔古纳市| 郧西县| 南川市| 建宁县| 会理县| 资阳市| 蒲江县| 秦皇岛市| 泰宁县| 滨海县| 和硕县| 时尚| 抚宁县| 花莲县| 丘北县| 汾阳市| 红安县| 元氏县| 龙泉市| 三门峡市| 自贡市| 凤冈县| 婺源县| 怀化市| 青河县| 江油市| 成武县| 来安县| 富裕县| 肃宁县| 鹿邑县| 浏阳市| 赤城县| 安丘市| 淅川县|