'관리자권한 cmd'에 해당되는 글 1건

728x90

Vue.js 기본 제공된 소스를 수정하기 위해서 먼저 해주어야 할 사항이다.

 

커맨드 창에서 npm install vue-router --save

 

https://bootstrap-vue.org/ 사이트에 접속하여 Get Started 버튼을 눌러서 순서대로 진행한다.

 

커맨드 창에서 아래 명령어를 입력한다.

yarn add vue bootstrap bootstrap-vue

 

 

위와 같은 에러 메시지가 나오면 CMD 창을 관리자 권한으로 열어서 명령어를 입력해야 한다.

관리자 권한으로 CMD 창 여는 방법

Window 키 + R 누르고 메시지 창에 cmd 입력하고 Ctrl + Shift + Enter키 누른다.

 

 

 

 

Vue.js 기초를 이해하기 위해서 "한시간만에 끝내는 Vue.js" 유투브 강좌를 듣고 실습한 걸 토대로 구글링해서 내용을 좀 더 추가하여 적어둔다.

https://www.youtube.com/watch?v=sqH0u8wN4Rs 

 

작업한 파일 구조

- 추가한 폴더 : layout 폴더, views 폴더

- 추가한 파일 : Header.vue, Home.vue, About.vue, router.js

- 수정한 파일 : App.vue, main.js

 

 

소스코드

<!--App.vue-->
<template>
  <div id="app">
    <Header />
    <div id="content" class="content">
      <router-view></router-view>
    </div>
 
  </div>
</template>
 
<script>
import Header from './components/layout/Header.vue'
 
export default {
  name'App',
  components: {
    Header,
  }
}
</script>
 
<style>
</style>
 

<Header /> 에서 />로 넣어주는 것을 self closing tag 라고 한다.

<br /> 가 예전에는 <br> 이었는데 self closing tag 를 추가하는 것이 최신 문법이다.

 

// main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
 
// Make BootstrapVue available throughout your project
Vue.use(BootstrapVue)
// Optionally install the BootstrapVue icon components plugin
Vue.use(IconsPlugin)
 
// Import Bootstrap an BootstrapVue CSS files (order is important)
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
 
Vue.config.productionTip = false
 
new Vue({
  router,
  render: h => h(App),
}).$mount('#app')
 

 

// router.js
import Vue from "vue";
import VueRouter from "vue-router";
import Home from "./views/Home";
import About from "./views/About";
 
Vue.use(VueRouter);
 
const router = new VueRouter({
    mode: "history",
    routes: [{
        path: "/",
        component: Home
    },
        {
            path: "/about",
            component: About
        },
    ]
});
 
export default router;
 

 

 
<!--Header.vue-->
<template>
  <div>
    <b-navbar toggleable="lg" type="dark" variant="info">
      <b-navbar-brand href="#">NavBar</b-navbar-brand>
 
      <b-navbar-toggle target="nav-collapse"></b-navbar-toggle>
 
      <b-collapse id="nav-collapse" is-nav>
        <b-navbar-nav>
          <b-nav-item href="#">Link</b-nav-item>
          <b-nav-item href="#" disabled>Disabled</b-nav-item>
        </b-navbar-nav>
 
        <!-- Right aligned nav items -->
        <b-navbar-nav class="ml-auto">
          <b-nav-form>
            <b-form-input size="sm" class="mr-sm-2" placeholder="Search"></b-form-input>
            <b-button size="sm" class="my-2 my-sm-0" type="submit">Search</b-button>
          </b-nav-form>
 
          <b-nav-item-dropdown text="Lang" right>
            <b-dropdown-item href="#">EN</b-dropdown-item>
            <b-dropdown-item href="#">ES</b-dropdown-item>
            <b-dropdown-item href="#">RU</b-dropdown-item>
            <b-dropdown-item href="#">FA</b-dropdown-item>
          </b-nav-item-dropdown>
 
          <b-nav-item-dropdown right>
            <!-- Using 'button-content' slot -->
            <template #button-content>
              <em>User</em>
            </template>
            <b-dropdown-item href="#">Profile</b-dropdown-item>
            <b-dropdown-item href="#">Sign Out</b-dropdown-item>
          </b-nav-item-dropdown>
        </b-navbar-nav>
      </b-collapse>
    </b-navbar>
  </div>
</template>
 
<script>
export default {
  name"Header"
}
</script>
 
<style scoped>
 
</style>

 

<!--Home.vue-->
<template>
<div>
  <h2>Welcome to {{ title }}!</h2>
  <input type="text" v-model="input1">
  <button @click="getData">Get</button>
  <button @click="setData">Set</button>
  <div><p></p></div>
  <select class="form-control" v-model="region" @change="changeRegion">
    <option :value="d.v" v-for="(d,i) in optins" :key="i">{{d.data}}</option>
  </select>
  <div><p></p></div>
  <table class="table table-bordered" v-if="tableShow">
    <tr v-for="(d,i) in optins" :key="i">
      <td>{{d.v}}</td>
      <td>{{d.data}}</td>
    </tr>
  </table>
</div>
</template>
 
<script>
export default {
  name"Home",
  data(){
    return {
      // v-model 을 통해서 데이터 바인딩 처리
      title: "MySite",
      input1: "abc",
      optins: [
        {v:"S", data:"서울"},
        {v:"B", data:"부산"},
        {v:"D", data:"대전"},
      ],
      region: "D",
      tableShow: false,
      // v-show 는 랜더링을 하지만, v-if는 랜더링 자체를 하지 않는다.
    }
  },
  watch:{
    input1(){
      // 특정 데이터를 모니터링하고 있다가
      // 캐치해서 새로운 작업 수행 처리
      console.log(this.input1);
    },
  },
  methods: {
    getData(){
      alert(this.input1);
    },
    setData(){
      this.input1 = "12345";
    },
    changeRegion(){
      alert(this.region);
    },
  },
  // Vue LifeCycle
  beforeCreate(){
    // Vue 인스턴스가 초기화된 직후에 발생한다.
    // 컴포넌트가 DOM에 추가되기도 전이다.
    // data, event, watcher에 접근하기 전이라 data, methods에도 접근할 수 없다.
    console.log("beforeCreate");
  },
  created(){
    // beforeCreate() => data() => created() 순으로 실행된다.
    // data에 직접 접근이 가능하지만, 아직 템플릿과 가상DOM에는 접근할 수 없다.
    // 이제 data와 events가 활성화되어 접근할 수 있다.
    console.log("created");
  },
  beforeMount(){
    console.log("beforeMount")
  },
  mounted(){
    // 가상 DOM의 내용이 실제 DOM에 부착되고 난 이후에 실행되므로,
    // data, computed, methods, watch 등 모든 요소에 접근이 가능하다.
    console.log("mounted");
  },
  beforeUpdate(){
    // DOM이 패치되기 전에 데이터가 변경될 때 호출된다.
    console.log("beforeUpdate");
  },
  updated(){
    // 데이터가 변경되어 가상 DOM이 다시 렌더링되고 패치된 후에 호출된다.
    console.log("updated");
  },
  beforeDestroy(){
    // 해당 인스턴스가 소멸(뷰 컴포넌트 제거)되기 직전에 beforeDestroy훅이 호출된다.
    console.log("beforeDestroy");
  },
  destroyed(){
    // 인스턴스가 소멸되고 난 직후에 destroyed 훅이 호출된다.
    // Vue의 모든 디렉티브(v-)가 바인딩 해제되고
    // 모든 이벤트 리스너가 제거되며 모든 하위 Vue 컴포넌트도 삭제된다.
    console.log("destroyed");
  },
 
}
</script>
 
<style scoped>
 
</style>

 

<!--About.vue-->
<template>
<div>
  <h1>About Page</h1>
</div>
</template>
 
<script>
export default {
  name"About"
}
</script>
 
<style scoped>
 
</style>
 

 

 

'Web 프로그램 > Vue' 카테고리의 다른 글

Vue.js 환경 설정  (0) 2022.01.13
블로그 이미지

Link2Me

,