zoukankan      html  css  js  c++  java
  • Vue is used in projects

    序:Our goal is to apply the Vue to the project to implement the application functionality。

           Individuals say that using Vue for functionality in a project is a great option。

           Vue is really easy to use。

    Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。

    Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。

    结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

    创建根实例  new Vue({ el: '#app' })

    data 用于定义属性

    methods 用于定义的函数,可以通过 return 来返回函数值。

    {{ }} 用于输出对象属性和函数返回值。

    v-html指令:用于输出

    v-bind指令: 主要用于属性绑定

    v-on指令:用来绑定事件的

    v-model指令:用于表单数据的双向绑定

    v-if 指令:用于表达式的判断

    v-else指令:给 v-if 添加一个 "else" 块

    v-for指令:用于循环和渲染数据

    除了数据属性,Vue 还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来

    Vue 核心指令

    默认( v-model 和 v-show )

    钩子函数

    bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。

    inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

    update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。

    componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。

    unbind: 只调用一次, 指令与元素解绑时调用。

    钩子函数的参数

    el: 指令所绑定的元素,可以用来直接操作 DOM 。

    binding: 一个对象,包含以下属性:

                            name: 指令名,不包括 v- 前缀。

                            value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2

                            oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。

                            expression: 绑定值的表达式或变量名。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"

                            arg: 传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"

                            modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }

    vnode: Vue 编译生成的虚拟节点。

    oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

    操作

    第一步:新建一个基于WebForms的应用程序或MVC应用程序

    我这是基于WebForms的应用程序

    新建好应用程序再建类库Model层和DAL层

    在Model层搭建一个ADO.NET实体数据模型,来自数据库的Code First 选好你要用到的库导入表

    第二步:搭建约束和Nuget包

                 DAL   

                             引用:

                                       Model

                          程序集:

                                        System.Configuration

                                        System.Xml

                                        System.Xml.Linq

              应用程序

                             引用:

                                       Model

                                       DAL

                         Nuget包:

                                        Newtonsoft.Json

    第三步:导入Vue.js

                            

    第四步:搭建DBbase,编辑页面需要功能,写业务

    DBbase

     1 using Model;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Data;
     5 using System.Data.SqlClient;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 
    10 namespace DAL
    11 {
    12     public class DBbase
    13     {
    14         //读取配置文件,连接数据库语句
    15         public static string strCon = System.Configuration.ConfigurationManager.ConnectionStrings["Family"].ConnectionString;
    16 
    17         //实例化连接对象 con  
    18         SqlConnection con = new SqlConnection(strCon);
    19 
    20         //检测连接是否打开  
    21         public void Connection()
    22         {
    23             if (this.con.State == ConnectionState.Closed)
    24             {
    25                 this.con.Open();
    26             }
    27         }
    28         //根据提供的strSQL语句 访问数据库,返回List集合
    29         public List<User> GetDataSet(string strSQL)
    30         {
    31             Connection();
    32             try
    33             {
    34                 SqlDataAdapter da = new SqlDataAdapter(strSQL, con);
    35                 DataSet ds = new DataSet();
    36                 da.Fill(ds);
    37                 List<User> list = new List<User>();
    38                 if (ds.Tables.Count > 0)
    39                 {
    40                     for (int i = 0; i < ds.Tables.Count; i++)
    41                     {
    42                         foreach (DataRow dr in ds.Tables[i].Rows)
    43                         {
    44                             User obj = new User();
    45                             if (ds.Tables[i].Columns.Contains("UserID")) obj.UserID = Convert.ToString(dr["UserID"]);
    46                             if (ds.Tables[i].Columns.Contains("UserName")) obj.UserName = Convert.ToString(dr["UserName"]);
    47                             if (ds.Tables[i].Columns.Contains("UserSet")) obj.UserSet = Convert.ToString(dr["UserSet"]);
    48                             if (ds.Tables[i].Columns.Contains("Userphone")) obj.Userphone = Convert.ToString(dr["Userphone"]);
    49                             if (ds.Tables[i].Columns.Contains("UserworkType")) obj.UserworkType = Convert.ToString(dr["UserworkType"]);
    50                             if (ds.Tables[i].Columns.Contains("WorkDetailsSituation")) obj.WorkDetailsSituation = Convert.ToString(dr["WorkDetailsSituation"]);
    51                             if (ds.Tables[i].Columns.Contains("UserleverlType")) obj.UserleverlType = Convert.ToString(dr["UserleverlType"]);
    52                             if (ds.Tables[i].Columns.Contains("UserType")) obj.UserType = Convert.ToString(dr["UserType"]);
    53                             if (ds.Tables[i].Columns.Contains("UserCreationtime")) obj.UserCreationtime = Convert.ToDateTime(dr["UserCreationtime"]);
    54                             if (ds.Tables[i].Columns.Contains("Userhobby")) obj.Userhobby = Convert.ToString(dr["Userhobby"]);
    55                             list.Add(obj);
    56                         }
    57                     }
    58                 }
    59                 return list;
    60             }
    61             catch (Exception)
    62             {
    63 
    64                 throw;
    65             }
    66         }
    67     }
    68 }

    Family

     1 using Model;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace DAL
     9 {
    10    public class Family
    11     {
    12         //实例化一个DBbase对象
    13         static DBbase db = new DBbase();
    14 
    15         //查询用户数据 
    16         public static List<User> User()
    17         {
    18             //通过实体中的属性访问 拼接一个你需要的SQL语句
    19             StringBuilder strSQL = new StringBuilder();
    20             strSQL.Append("Select Theserialnumber, UserID, UserName, UserSet, Userphone, work.UserworkType,Details.WorkDetailsSituation,[level].UserleverlType,[type].UserType, UserCreationtime, hobby.Userhobby from [User]  ");
    21             strSQL.Append("inner join Work on Work.UserworkID=[User].UserworkID  ");
    22             strSQL.Append("inner join [level] on [level].UserlevelID=[user].UserlevelID  ");
    23             strSQL.Append("inner join UserType as [type] on [type].UserTypeID=[USER].UserTypeID  ");
    24             strSQL.Append("inner join WorkDetails as Details on Details.WorkDetailsID=Work.WorkDetailsID  ");
    25             strSQL.Append("inner join Userhobby as hobby on hobby.UserhobbyID=[user].UserhobbyID");
    26             return db.GetDataSet(strSQL.ToString());
    27         }
    28     }
    29 }

    HomePage

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HomePage.aspx.cs" Inherits="Vue.Page.HomePage" %>
     2 
     3 <!DOCTYPE html>
     4 <html xmlns="http://www.w3.org/1999/xhtml">
     5 <head runat="server">
     6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     7     <title>My Vue application</title>
     8     <style type="text/css">
     9         span {
    10             color: red;
    11         }
    12 
    13         table {
    14             border: 1px solid #808080;
    15             text-align: center;
    16              80%;
    17             margin-left: 10%;
    18         }
    19 
    20         .tr_Color {
    21             color: red;
    22         }
    23     </style>
    24 </head>
    25 <body>
    26     <div id="app">
    27         <p>Data Binding:<span>{{ binding }}</span></p>
    28         <p>UserName:<span>{{ user.UserName }}</span></p>
    29         <p>UserSet:<span>{{ user.UserSet }}</span></p>
    30         <hr />
    31         <table>
    32             <thead>
    33                 <tr>
    34                     <td>用户编号</td>
    35                     <td>用户姓名</td>
    36                     <td>用户性别</td>
    37                     <td>用户电话</td>
    38                     <td>工作类型</td>
    39                     <td>工作详情</td>
    40                     <td>用户权限</td>
    41                     <td>用户类型</td>
    42                     <td>入户时间</td>
    43                     <td>用户性趣</td>
    44                 </tr>
    45             </thead>
    46             <tbody v-for="list in User">
    47                 <tr class="tr_Color">
    48                     <td>{{ list.UserID }}</td>
    49                     <td>{{ list.UserName }}</td>
    50                     <td>{{ list.UserSet }}</td>
    51                     <td>{{ list.Userphone }}</td>
    52                     <td>{{ list.UserworkType }}</td>
    53                     <td>{{ list.WorkDetailsSituation }}</td>
    54                     <td>{{ list.UserleverlType }}</td>
    55                     <td>{{ list.UserType }}</td>
    56                     <td>{{ list.UserCreationtime }}</td>
    57                     <td>{{ list.Userhobby }}</td>
    58                 </tr>
    59             </tbody>
    60         </table>
    61     </div>
    62 </body>
    63 <script src="../scripts/jquery.min.js"></script>
    64 <script src="../scripts/vue.js"></script>
    65 <script src="Home.js"></script>
    66 </html>

    Home.js

    var vm = new Vue({
        el: "#app",
        data: {
            binding: "The first data",
            user: {
                UserID: "",
                UserName: "Zhang SAN",
                UserSet: "male",
                Userphone: "",
                UserworkType: "",
                WorkDetailsSituation: "",
                UserleverlType: "",
                UserType: "",
                UserCreationtime: "",
                Userhobby: "",
            },
            User: [
    
            ]
        },
        methods: {
            onGetList: function () {
                var that = this;
                that.User.push({
                    "UserID": that.user.UserID,
                    "UserName": that.user.UserName,
                    "UserSet": that.user.UserSet,
                    "Userphone": that.user.Userphone,
                    "UserworkType": that.user.UserworkType,
                    "WorkDetailsSituation": that.user.WorkDetailsSituation,
                    "UserleverlType": that.user.UserleverlType,
                    "UserType": that.user.UserType,
                    "UserCreationtime": that.user.UserCreationtime,
                    "Userhobby": that.user.Userhobby
                });
                $.post("/Assembled/LargeCollection.aspx?action=getUser", {}, function (result) {
                    if (result) {
                        if (result.flag) {
    
                            that.User = $.parseJSON(result.data);
                        }
                        else {
                            alert("获取数据失败");
    
                        }
                    }
                }, "json");
            }
        },
        mounted: function () {
            this.onGetList();
        }
    });

    我这用的是post访问,所以又给他提供了个aspx界面,如果你用MVC可以直接访问控制器

    LargeCollection

     1 using Newtonsoft.Json;
     2 using Newtonsoft.Json.Linq;
     3 using System;
     4 using System.Collections.Generic;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.UI;
     8 using System.Web.UI.WebControls;
     9 using System.Data;
    10 using System.IO;
    11 using Model;
    12 
    13 
    14 
    15 namespace Vue.Assembled
    16 {
    17     public partial class LargeCollection : BasePage
    18     {
    19         protected void Page_Load(object sender, EventArgs e)
    20         {
    21             string action = GetQueryString("action");
    22             string result = string.Empty;
    23             if (action.Equals("getUser"))
    24             {
    25                 result = GetUser();
    26             }
    27             Response.Clear();
    28             Response.Write(result);
    29             Response.End();
    30         }
    31         private string GetUser()
    32         {
    33             List<User> user = DAL.Family.User();
    34             String data = JsonConvert.SerializeObject(user);
    35             return GetResult(true, "", data); ;
    36         }
    37 
    38 
    39     }
    40 }

    BasePage

    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    
    
    namespace Vue
    {
        public class BasePage : System.Web.UI.Page
        {
            //得到页面通过?传递的参数(字符型),如未传,则为string.Empty
            public string GetQueryString(string key)
            {
                string k = string.Empty;
                if (Request.QueryString[key] != null)
                {
                    k = Server.UrlDecode(Request.QueryString[key].ToString());
                }
                if (!Model.CFun.IsSafety(k))
                {
                    k = string.Empty;
                }
                return k;
            }
    
            //获取结果
            protected string GetResult(bool flag, string errorMessage)
            {
                JObject jo = new JObject();
                jo.Add("flag", flag);
                jo.Add("errorMessage", errorMessage);
                return JsonConvert.SerializeObject(jo);
            }
    
            //获取数据
            protected string GetResult(bool flag, string errorMessage, string data)
            {
                JObject jo = new JObject();
                jo.Add("flag", flag);
                jo.Add("errorMessage", errorMessage);
                jo.Add("data", data);
                return JsonConvert.SerializeObject(jo);
            }
        }
    }

    第五步:运行看下显示的效果

  • 相关阅读:
    java中interface的完整表述
    DoTA与人生
    DotNet.Utilities工具类
    visual studio xcopy /exclude测试
    Assembly.Load()方法,Assembly.LoadFrom()方法,Assembly.LoadFile()方法的区别!
    DataGridView列自适应宽度
    [Head First设计模式]
    winform 取消datagridview第一行选中状态
    winform WebBrowser如何修改使用默认的IE浏览器版本
    C# 注释换行
  • 原文地址:https://www.cnblogs.com/jstblog/p/12355279.html
Copyright © 2011-2022 走看看