vue2.0的初始化

vue2.0的初始化,使用 webpack构建工具生成的项目

直接上代码

main.js文件

 

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  render: h => h(App)
})

 

new vue:表示 创建了一个Vue对象的实例

el:'#app' :表示 将刚创建的Vue对象实例 挂载 指定的Dom元素中,本项目是index.html文件的<div id="app"></div>。

               思想就像下面是使用jQuery、JS拼接菜单的Java项目中,JS中"变量html"把结果赋给了html元素nav

 1 <ul id="nav" class="nav"> 

 

 1 function drawTopNav(data) {
 2         var html = [];
 3         $.each(data, function(i, menu) {
 4             html.push('<li><div class="nav-header"><a iconClass='+menu.ICON_CLASS+' class="firstNode" id="firstNode'
 5                     + menu.ID
 6                     + '" href="'
 7                     + (!menu.URL || menu.URL == 'null' ? 'javascript:void(0);'
 8                             : menu.URL) + '"><img src="'+menu.IMG_URL+'"><h2>'
 9                     + menu.NAME + '</h2></a></div></li>');
10             
11             firstArr[menu.ID] = menu;
12         });
13         $("#nav").html(html.join(''));
14         $(".firstNode").bind("click", firstNodeClicked);
15         $(".firstNode").first().click();
16     }
render: h => h(App):作用是渲染视图,作为填充的内容给挂载点el,这是vue2.0的写法
----
下面是vue1.0的写法
components: { App },
template: '<App/>'
components: { App },作用是 注册组件信息
template: '<App/>'作用是 简写的模板调用组件的标签

实际上这两行代码的作用是一样的,
作用是渲染视图,作为填充的内容给挂载点el
 

index.html文件

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <meta charset="utf-8">
 5     <meta name="viewport" content="width=device-width,initial-scale=1.0">
 6     <title>test_vue</title>
 7   </head>
 8   <body>
 9     <div id="app"></div>
10     <!-- built files will be auto injected -->
11   </body>
12 </html>

 

App.vue文件

 1 <template>
 2   <div id="app">
 3     <img src="./assets/logo.png">
 4     <router-view/>
 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: 'App'
11 }
12 </script>
13 
14 <style>
15 #app {
16   font-family: 'Avenir', Helvetica, Arial, sans-serif;
17   -webkit-font-smoothing: antialiased;
18   -moz-osx-font-smoothing: grayscale;
19   text-align: center;
20   color: #2c3e50;
21   margin-top: 60px;
22 }
23 </style>

 

router文件下的index.js文件

 1 import Vue from 'vue'
 2 import Router from 'vue-router'
 3 import HelloWorld from '@/components/HelloWorld'
 4 
 5 Vue.use(Router)
 6 
 7 export default new Router({
 8   routes: [
 9     {
10       path: '/',
11       name: 'HelloWorld',
12       component: HelloWorld
13     }
14   ]
15 })

 

components文件夹下的HelloWorld.vue文件

 1 <template>
 2     <div class="hello">
 3         <h1>{{ msg }}</h1>
 4         <h2>Essential Links YYYYYY 2019</h2>
 5         <ul>
 6             <li>
 7                 <a href="https://vuejs.org" target="_blank">
 8                     Core Docs
 9                 </a>
10             </li>
11             <li>
12                 <a href="https://forum.vuejs.org" target="_blank">
13                     Forum
14                 </a>
15             </li>
16             <li>
17                 <a href="https://chat.vuejs.org" target="_blank">
18                     Community Chat
19                 </a>
20             </li>
21             <li>
22                 <a href="https://twitter.com/vuejs" target="_blank">
23                     Twitter
24                 </a>
25             </li>
26             <br>
27             <li>
28                 <a href="http://vuejs-templates.github.io/webpack/" target="_blank">
29                     Docs for This Template
30                 </a>
31             </li>
32         </ul>
33         <h2>Ecosystem</h2>
34         <ul>
35             <li>
36                 <a href="http://router.vuejs.org/" target="_blank">
37                     vue-router
38                 </a>
39             </li>
40             <li>
41                 <a href="http://vuex.vuejs.org/" target="_blank">
42                     vuex
43                 </a>
44             </li>
45             <li>
46                 <a href="http://vue-loader.vuejs.org/" target="_blank">
47                     vue-loader
48                 </a>
49             </li>
50             <li>
51                 <a href="https://github.com/vuejs/awesome-vue" target="_blank">
52                     awesome-vue
53                 </a>
54             </li>
55         </ul>
56     </div>
57 </template>
58 
59 <script>
60     export default {
61         name: 'HelloWorld',
62         data() {
63             return {
64                 msg: 'Welcome to Your Vue.js App'
65             }
66         }
67     }
68 </script>
69 
70 <!-- Add "scoped" attribute to limit CSS to this component only -->
71 <style scoped>
72     h1,
73     h2 {
74         font-weight: normal;
75     }
76 
77     ul {
78         list-style-type: none;
79         padding: 0;
80     }
81 
82     li {
83         display: inline-block;
84         margin: 0 10px;
85     }
86 
87     a {
88         color: #42b983;
89     }
90 </style>

 

最终显示的页面:

 

转载于:https://www.cnblogs.com/YangBinChina/p/10288131.html

好的,对于您的问题,实现带有Mock后端数据的登录系统可以采取以下步骤: 1. 首先,搭建Vue2.0项目,可以使用Vue CLI或手动创建。安装所需要的依赖项。 2. 使用mockjs创建模拟数据(例如用户的信息,登录凭证等)并暴露在项目的mock API上。 3.Vue中定义登录组件,包含用于输入用户名和密码的表单。在提交表单时,使用axios或其他http库发起ajax请求。 4. 创建一个登录API使用axios或其他http库调用mock数据。 5. 如果登录成功,保存登录凭证(可以使用LocalStorage或Cookies)并重定向到指定的页面。否则,显示错误消息。 下面是一个大致的实现方案: 1. 首先安装Vue CLI:npm install -g @vue/cli 2. 创建项目并安装依赖:vue create login-project 3. 安装axios和mockjs:npm install axios mockjs 4. 在/src/mock/下创建一个mock.js文件,包含一些和登录相关的mock数据和API。例如: ```javascript import Mock from 'mockjs' // 模拟用户数据 Mock.mock('/api/user', { 'username|1-5': /[a-z]/, 'password|6-10': /[0-9a-zA-Z]/ }) // 模拟登录API Mock.mock('/api/login', 'post', function (options) { const { username, password } = JSON.parse(options.body) if (username === 'admin' && password === '123456') { return { code: 0, token: 'mock-token' } } else { return { code: -1, message: '用户名或密码错误' } } }) ``` 5. 在main.js中引入axios和mockjs并启用mock API: ```javascript import axios from 'axios' import Mock from 'mockjs' axios.defaults.baseURL = 'http://localhost:8080' Mock.setup({ timeout: '100-500' }) // 加载mock模块 require('./mock') ``` 6. 在/src/components/Login.vue中创建登录组件: ```html <template> <div> <h2>Login</h2> <form @submit.prevent="login"> <div> <label>Username:</label> <input type="text" v-model="user.username"> </div> <div> <label>Password:</label> <input type="password" v-model="user.password"> </div> <button type="submit">Submit</button> <span>{{ message }}</span> </form> </div> </template> <script> import axios from 'axios' export default { name: 'Login', data () { return { user: { username: '', password: '' }, message: '' } }, methods: { login () { axios.post('/api/login', this.user) .then(response => { if (response.data.code === 0) { localStorage.setItem('token', response.data.token) this.$router.push('/dashboard') } else { this.message = response.data.message } }) .catch(error => { console.error(error) }) } } } </script> ``` 7. 在App.vue中定义路由和导航: ```html <template> <div> <router-link to="/">Home</router-link> <router-link to="/login">Login</router-link> <router-view></router-view> </div> </template> <script> export default { name: 'App' } </script> ``` 8. 启动开发服务器:npm run serve 现在,您可以通过访问http://localhost:8080/login来在浏览器中尝试这个简单的登录系统了。如果您使用的是Vue CLI生成的项目,请注意启动服务时的端口号可能不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值